在运行时MVVM上更改Itemsource

时间:2014-06-17 03:55:35

标签: wpf

我想根据用户选择的内容动态更改数据网格的Item源。例如,我的用户将从服务器ftp不同的xml文件,每个文件包含略有不同的信息。我有不同对象的模型,我的视图模型存储为不同的通用列表......取决于对象。在我看来,我有一个datagird我想绑定到我的vm的通用列表之一,具体取决于用户选择ftp的文件。如何动态更改datagrid的ItemSource biding?有什么想法吗?

如果可能的话,我想保留代码中的代码。

1 个答案:

答案 0 :(得分:0)

一种方法是将一个DataGrid与AutoGenerateColumns设为true并简单地更改itemssource

 <DataGrid ItemsSource="{Binding MyData}" AutoGenerateColumns=true/>

视图模型

  public IList<object> MyData {get;set;} //<- INotifyPropertyChanged should be implemented

应该可行,但我不会这样做;)

我会使用datatemplates和特定的,而不是通用的“包装”对象为您的不同列表。