2012-11-09 78 views
0

我有MainPage類,我可以使用此代碼編輯XAML文本不

box1.Text = ""; 
編輯XAML文本框的內容

然而,試圖從另一個類下面的代碼會做編輯的文本框不行

MainPage.box1.Text = ""; 

的錯誤是「需要的對象引用的非靜態字段,方法或屬性‘class.MainPage.box1’ 我已經試過一切都像做靜態函數和創建新對象的MainPage其他clas s但沒有任何工作

+0

我編輯了自己的冠軍。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

亞歷克斯,這是WPF還是Silverlight? – tempidope

回答

1

XAML文本框在MainPage.xaml中/的.cs

對TextBox你正值設置器在一些類別X.

您在以下語句中出現錯誤的原因是,box1不是靜態的,而需要MainPage的實例。

MainPage.box1.Text = ""; 

但不只是任何實例。你需要當前的實例。因此,類X中的方法需要接收MainPage.xaml.cs類的「THIS」實例,然後更改box1值。

函數調用:

X xobj=new X(); 
xobj.ChangeboxValue(this); 

功能:

void ChangeboxValue(MainPage obj) 
{ 
obj.box1.Text="" 
} 
+0

Thanks!非常清晰描述它是如何工作的,現在我得到它的工作 – Alex

+0

很高興成爲幫助:) – tempidope

0

您正試圖訪問沒有對象實例的MainPage類的靜態字段。

你需要的MainPage類的實例來訪問它是這樣的:

MainPage myPage = new MainPage(); 
myPage.box1.Text = ""; 
+0

我試過了,應用程序崩潰,無效的跨線程訪問。將代碼放入Deployment.Current.Dispatcher.BeginInvoke(()=>應用程序不會崩潰,但不編輯文本框 – Alex

+0

在示例代碼中包含更多上下文可能會有所幫助。 –