从 WPF 中的窗口访问调用页面控件
我创建了 WPF 浏览器应用程序并添加了页面和窗口。单击页面中的按钮后,将打开一个窗口,其中包含 DataGrid 中的详细信息列表。我想将窗口 DataGrid 中的值分配给页面控件。
在窗口代码后面 (Window1.xaml.cs) 中使用以下代码,这些值不会分配给 Page 控件。
private void DataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Page1 page = new Page1();
page.txtName.Text = "GridValue1";
this.Close();
}
当我双击时,Wiindow1 Datagrid 中的值应分配给 Page1 的控件。我没有获得页面的正确对象来分配 txtName.text 的 DataGrid 值为 Window1。
提前非常感谢...
I have created WPF Browser Application and added Page and a Window. On click of button in Page it opens the Window with the list of details in a DataGrid. I want to assign the values from DataGrid of Window to the Page Controls.
The values are not assigned to the Page controls with the following code in Window code behind (Window1.xaml.cs)
private void DataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
Page1 page = new Page1();
page.txtName.Text = "GridValue1";
this.Close();
}
When I DoubleClick, the values from Wiindow1 Datagrid should be assigned to controls of Page1. I am not getting the right object of the page to assign txtName.text with DataGrid value of Window1.
Thanks a lot in Advance...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该在应用中使用 MVVM 架构模式。然后只需在页面和窗口之间共享/复制到窗口您的 ViewModel(它负责保存视图和模型之间的值和协调)。因此您将能够以两种方式正确处理同步。
更新
在您的情况下,在事件处理程序中,您需要从
DataGrid.Parent
向上走,依此类推,直到找到父页面。您将需要使用这种方法来查找视觉父母。You should use MVVM architectural pattern in your app. Then just share/copy-to-window your ViewModel (which is responsible for holding values and coordination between View and Model) between Page and Window. So you will be able to correctly handle synchronization in both ways.
UPDATE
In your case in the event handler you need to walk up from
DataGrid.Parent
and so on until you find the parent page. You will need to use this approach on finding visual parents.