2010-03-26 44 views
1

比方說,我有一個帶有按鈕的MainPage。我也有另一個頁面(Page2),它有一個文本框。我想通過MainPage中的按鈕導航,在Page2中的文本框中添加一個簡單的文本「TEXT」。我在實際打開網站時遇到問題。Silverlight獲取打開的網站

Page2 page2 = (Page2)Application.OpenedForms["Page2"]; page2.TextBox.Text = "TEXT";

我如何能做到這一點在Silverlight:在Windows窗體應用程序也被解決了嗎? HELP「)

回答

1

我沒有一個開發環境中得心應手,所以我的道歉這是不準確的,但此方法應爲你工作,是我做這樣的事情的首選方式。

這是我用僞代碼標記層次的理解:

<Page2> 
    <Textbox ID="MyTextbox" /> 
    <Control ID="Page1"> 
     <Button ID="MyButton" /> 
    </Control> 
</Page2> 

有了這樣的認識,這聽起來像你需要做的是注入的句柄,您的文本框爲你的下級控制的屬性是什麼:

// Page1 code 
public TextBox TextboxToUpdateWhenYouPressTheButton { get; set; } 

Click() 
{ 
    // Perform Not Null Check and handle it somehow if it is null. 

    // Set the text. 
    TextboxToUpdateWhenYouPressTheButton.Text = "This is the text that goes into the textbox."; 
} 

這樣做,無論何時創建Page1,只需將文本框的句柄傳遞到內部控件上的新TextBoxToUpdateWhenYouPressTheButton屬性即可。最終,這個想法保持不變,我們只通過這個屬性而不是直接訪問它。這將允許您的控件在多個屏幕上使用,而不管文本框被調用的是什麼。這樣,爲了讓頁面「消費」控件,需要先「註冊」該文本框。

+0

好的,但在Page1我沒有看到實際打開的Page2(並打開它)。主要問題是Page2已經加載並打開。 – Rafal 2010-03-26 14:40:57

+0

因此,Page1和Page2是同時打開的?如果您點擊Page1上的按鈕但第2頁已打開,我在這裏有點困惑。 – Jaxidian 2010-03-26 14:47:40

+0

Page1是一個內部有按鈕的用戶控件。 Page2是Page1的父項。然而,我不能調用父屬性,因爲我使用Click事件女巫通行證:AddButtonControl_Click(對象發件人,RoutedEventArgs e) – Rafal 2010-03-26 14:59:03