我想從一個不同的類更新一個類中的GUI組件(DataGrid)。我正在使用C#和WPF表單。從不同的類更新GUI組件WPF
當我使用標準的WF表單時,我可以將對GUI組件的引用作爲參數傳遞給需要使用DataGrid進行工作的函數。但是,我不知道我在WPF中如何做到這一點。
我有Class1,它有GUI組件,我需要Class3來運行Class2內的函數,它將自動更新Class1中找到的Datagrid的GUI顯示。
任何幫助,這將不勝感激。
我想從一個不同的類更新一個類中的GUI組件(DataGrid)。我正在使用C#和WPF表單。從不同的類更新GUI組件WPF
當我使用標準的WF表單時,我可以將對GUI組件的引用作爲參數傳遞給需要使用DataGrid進行工作的函數。但是,我不知道我在WPF中如何做到這一點。
我有Class1,它有GUI組件,我需要Class3來運行Class2內的函數,它將自動更新Class1中找到的Datagrid的GUI顯示。
任何幫助,這將不勝感激。
通常在WPF中,您會使用WPF databinding將網格綁定到實現「可觀察」類/接口之一的對象,例如INotifyPropertyChanged
或ObservableCollection<>
。這樣你就可以將數據作爲對象使用,數據綁定將確保這些更改反映在網格中。
如果您還沒有準備好使用數據綁定並希望以艱難的方式完成任務,您可以。你只是做同樣的事情,你會在WinForms中完成。我不知道你有什麼問題,但是從你描述:
public class Class3 {
public void RunTheFunctionInClass2(Class1 window, Class2 class2) {
class2.TheFunction(window.TheDatagrid);
}
}
而且在Class1.xaml:
<DataGrid Name="TheDataGrid" ... />
這是假設的Class1和Class3中都在同一程序 - 默認情況下,TheDataGrid
字段將具有internal
可見性。
我發現我如何傳遞WPF數據網格作爲參數。它與WF相同,唯一的問題是我沒有爲WPF DataGrid導入必需的元素。
所需的進口是
using Microsoft.Windows.Controls
使用進口上述允許訪問數據網格,以便您可以
你有沒有考慮過使用執行以下
感謝大家的幫助數據綁定?它是專爲這種東西而設計的。 – NickAldwin 2011-01-06 21:40:44