2011-01-06 17 views
0

我想從一個不同的類更新一個類中的GUI組件(DataGrid)。我正在使用C#和WPF表單。從不同的類更新GUI組件WPF

當我使用標準的WF表單時,我可以將對GUI組件的引用作爲參數傳遞給需要使用DataGrid進行工作的函數。但是,我不知道我在WPF中如何做到這一點。

我有Class1,它有GUI組件,我需要Class3來運行Class2內的函數,它將自動更新Class1中找到的Datagrid的GUI顯示。

任何幫助,這將不勝感激。

+3

你有沒有考慮過使用執行以下

private void myMethod(DataGrid myTable){} 

感謝大家的幫助數據綁定?它是專爲這種東西而設計的。 – NickAldwin 2011-01-06 21:40:44

回答

1

通常在WPF中,您會使用WPF databinding將網格綁定到實現「可觀察」類/接口之一的對象,例如INotifyPropertyChangedObservableCollection<>。這樣你就可以將數據作爲對象使用,數據綁定將確保這些更改反映在網格中。

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可見性。

0

我發現我如何傳遞WPF數據網格作爲參數。它與WF相同,唯一的問題是我沒有爲WPF DataGrid導入必需的元素。

所需的進口是

using Microsoft.Windows.Controls 

使用進口上述允許訪問數據網格,以便您可以