假设我有一个带有按钮的MainPage。我还有另一个页面(第2页),它有一个文本框。我想在Page2中的文本框中添加一个简单的文本“TEXT”,同时通过MainPage中的按钮进行导航。我有一个实际打开网站的问题。在Windows窗体应用程序中,它通过以下方式解决:
Page2 page2 = (Page2)Application.OpenedForms["Page2"];
page2.TextBox.Text = "TEXT";
我如何在Silverlight中执行此操作? HELP“)
答案 0 :(得分:1)
我没有方便的开发环境,所以我为此道歉并不准确,但这种方法应该对你有用,并且是我做这样的事情的首选方式。
以下是我对使用伪代码标记的层次结构的理解:
<Page2>
<Textbox ID="MyTextbox" />
<Control ID="Page1">
<Button ID="MyButton" />
</Control>
</Page2>
有了这样的理解,听起来你需要做的是将TextBox的句柄注入到低级控件的属性中:
// 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属性即可。最终,这个想法保持不变,我们只通过这个属性而不是直接访问它。这将允许您的控件在许多屏幕上使用,无论文本框被调用什么。这样,对于您的页面“使用”控件,需要首先“注册”此文本框。