如何从另一个表单示例控制主表单我想从wpf中的另一个表单访问主表单中的表?
答案 0 :(得分:0)
您可以使用UI自动化(只允许您与其进行交互,就像您是用户点击/键入控件一样): http://msdn.microsoft.com/en-us/library/dd561932(VS.85).aspx
或者您可以使用后面的代码将引用从一个窗口传递到另一个窗口,可能在您的Application类中。
WPF没有任何特定内容可以使任一选项变得更容易或更难实现。
答案 1 :(得分:0)
salamonti, 是否要访问主窗体上的控件或控件正在显示的数据?如果是后者,我建议你将数据保存在一个单独的区域,而不是提供它的控件。这可以通过MVVM和其他几种视图分离模式来实现。您还可以使用“路由事件”和“路由命令”从一个“表单”中执行代码。
如果要从子表单访问“主表单”,可以在FrameworkElement类型的子表单上创建一个属性。然后,在创建子表单时,只需使用主表单的实例填充此属性。通过这种方式,您可以访问主窗体中的任何内容。
答案 2 :(得分:0)
这是WPF中窗口之间的一小部分通信
您可以将控件称为对类字段的处理方式,因为它们就是
public class Form1 : Window
{
public DateTime FormCreationDate {get; set;}
private void button1_Click(object sender, RoutedEventArgs e)
{
Form2 a = new Form2();
a.Owner = this;
a.Show();
}
}
public class Form2 : Window
{
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.label1.Content = string.Format(
"the owner of this window was created on {0}",
((Form1)this.Owner).FormCreationDate.ToString());
}
}