我正在尝试从不同的类更新一个类中的GUI组件(DataGrid)。我正在使用C#和WPF Forms。
当我使用标准WF表单时,我可以将对GUI组件的引用作为参数传递给需要与DataGrid一起工作的函数。但是,我不知道如何在WPF中执行此操作。
我有Class1,它有GUI组件,我需要Class3来运行Class2中的函数,它将自动更新Class1中找到的Datagrid的GUI显示。
答案 0 :(得分:1)
通常在WPF中,您使用WPF databinding将网格绑定到实现“可观察”类/接口之一的对象,例如INotifyPropertyChanged
或ObservableCollection<>
。这样您就可以将数据作为对象使用,数据绑定将确保这些更改反映在网格中。
答案 1 :(得分:0)
如果您还没准备好使用数据绑定并且想要以艰难的方式做事,那么您可以。你只需要在WinForms中做同样的事情。我不确定你遇到了什么问题,但是根据你的描述:
public class Class3 {
public void RunTheFunctionInClass2(Class1 window, Class2 class2) {
class2.TheFunction(window.TheDatagrid);
}
}
在Class1.xaml中:
<DataGrid Name="TheDataGrid" ... />
这假设Class1和Class3都在同一个程序集中 - 默认情况下,TheDataGrid
字段将具有internal
可见性。
答案 2 :(得分:0)
我发现了如何将WPF数据网格作为参数传递。它与WF的方式相同,唯一的问题是我没有为WPF DataGrid导入所需的元素。
所需的导入是
using Microsoft.Windows.Controls
使用上面的导入允许访问DataGrid,以便您可以执行以下操作
private void myMethod(DataGrid myTable){}
感谢大家的帮助