我想在運行時向C#WPF ListView(GridView)添加新的列和行。據我所知,只能通過使用匿名對象或具有列綁定到的靜態成員集的類來將行添加到gridview。有沒有辦法在運行時執行此操作,以便用戶能夠添加新列,將此列綁定到某個內容並添加新數據?動態添加列和行到wpf listview
THX ooorndtski
我想在運行時向C#WPF ListView(GridView)添加新的列和行。據我所知,只能通過使用匿名對象或具有列綁定到的靜態成員集的類來將行添加到gridview。有沒有辦法在運行時執行此操作,以便用戶能夠添加新列,將此列綁定到某個內容並添加新數據?動態添加列和行到wpf listview
THX ooorndtski
所以,我在找的是this thread。 他創建了一個新的Dictionary類,它實現了INotifyPropertyChanged接口。 向數據字典添加數據時,會觸發事件。
在代碼中要添加新行的位置,只需將數據放入此Dictionary類的一個對象中並將該Dictionary添加到綁定到DataGrid的ObservableCollection。
是的,你可以做到這一點的代碼的運行。您需要將GridView作爲變量(在XAML中給它一個名稱以在Visual Studio中自動生成該變量)。 GridView有一個Columns屬性,您可以像處理其他任何集合一樣處理該屬性,例如可以添加和刪除它。
這是從MSDN的例子(GridView的名字 「myGridView」):
GridViewColumn gvc3 = new GridViewColumn();
gvc3.DisplayMemberBinding = new Binding("EmployeeNumber");
gvc3.Header = "Employee No.";
gvc3.Width = 100;
myGridView.Columns.Add(gvc3);
一般來說,任何你可以在XAML做,你可以在代碼中完成。
謝謝你的回答。假設程序啓動時已經有2列。爲了將一些數據放入列表視圖中,我可以使用'ObservableCollection
如果您將它們命名爲相應的對象ID,則它們可以是。您循環控制並解析其ID的名稱。按名稱btn_21動態創建的按鈕將抓取21並通過其他控件名稱進行解析(如果是21),則使用is進行操作。 'if(c是TextBox)'... –
請更具體一些,顯示一些示例代碼。 – JeffRSon