WinRT应用程序

时间:2013-06-04 10:07:52

标签: c# xaml

我正忙着开发WinRT应用程序。

我想访问页面 BasicPage1.xaml 中定义的RichEditBox的值到页面 BasicPage2.xaml 后面的代码中,即在 BasicPage2.xaml.cs中

无论如何在 BasicPage2.xaml.cs 中获取RichEditBox(在 BasicPage1.xaml 中定义)的值?

感谢您的期待。

3 个答案:

答案 0 :(得分:1)

您熟悉MVVM吗?基本上,我们的想法是不要依赖于业务数据的控制层,而是在另一层上共享这些信息,在本例中是模型或视图模型。 因此,假设您想要加载项目并使用包含项目路径的文本框的对话框,用户可以修改该项目。因此,您将路径存储在名为ProjectInformation的模型中,此对象现在可以传递给其他视图(更准确地说,查看模型,然后查看视图)并在那里使用数据。这里的重要部分是生命周期,你的模型比你的视图生存的时间长得多,所以数据在必要的地方存储和重用。

答案 1 :(得分:1)

一种简单的方法是在XAML中为文本框指定一个名称,然后通过后面代码中的名称访问该文本框。

<TextBox Name="myTextBox"/>

然后在后面的代码中你可以做到这一点

myTextBox.Text = "blah";

更好的方法是使用绑定,以便更新文本框会自动更新您绑定的属性。看看这篇文章textbox binding example

对于丰富的编辑文本框,您应该能够这样做:

myTextBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, "Here is text");

获取

  string value = string.Empty;
  myTextBox.Document.GetText(Windows.UI.Text.TextGetOptions.AdjustCrlf, out value);

有关详细信息,请参阅此post

答案 2 :(得分:0)

导航到其他页面时是否需要发送?然后你就可以这样做:

this.Frame.Navigate(typeof(BasicPage2),textbox.Text);

并在BasicPage2.xaml.cs:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var textbox= e.Parameter; 
    ...    
} 

但我强烈建议在您的应用程序中使用MVVM。使用MVVMLight,您可以非常轻松快捷地实现这一点。