从不同的C#WPF类更新GUI组件

时间:2011-01-06 21:39:27

标签: c# wpf

我正在尝试从不同的类更新一个类中的GUI组件(DataGrid)。我正在使用C#和WPF Forms。

当我使用标准WF表单时,我可以将对GUI组件的引用作为参数传递给需要与DataGrid一起工作的函数。但是,我不知道如何在WPF中执行此操作。

我有Class1,它有GUI组件,我需要Class3来运行Class2中的函数,它将自动更新Class1中找到的Datagrid的GUI显示。

3 个答案:

答案 0 :(得分:1)

通常在WPF中,您使用WPF databinding将网格绑定到实现“可观察”类/接口之一的对象,例如INotifyPropertyChangedObservableCollection<>。这样您就可以将数据作为对象使用,数据绑定将确保这些更改反映在网格中。

答案 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){}

感谢大家的帮助