我一直試圖從本質上用DataTable替換由DataGrid控件自動生成的整個表。在運行時重新加載/替換到WPF DataGrid新表
我之前看過this question,但我一直試圖避免在我的viewmodel類中引用UI元素(或將代碼添加到Mainwindow.xaml.cs作爲最後的手段)。
首先我約束的ItemsSource爲DataGrid到DataView財產我有我的視圖模型:
<DataGrid Grid.Row="1" Grid.Column ="1" ItemsSource="{Binding DisplayView}"/>
private DataView displayView;
public DataView DisplayView
{
get { return displayView; }
set { displayView = value; }
}
我也有格式化的SQL表到適當的數據表的方法,然後我分配到DataView綁定到網格。
DisplayView = dtCloned.DefaultView;
當我在構造函數中調用此方法時,表填充執行。
在運行時調用它會以相同的格式創建一個新表,但將其分配給DataView屬性不會重新加載DataGrid以顯示新表;我哪裏錯了?
您的視圖模型需要實現'INotifyPropertyChanged'並通知DisplayView屬性的更改。 –