2014-06-17 68 views
0

我想動態更改數據網格的Item源,具體取決於用戶選擇的內容。例如,我的用戶會從服務器上ftp不同的xml文件,每個文件都包含稍微不同的信息。我有不同的對象模型,我的視圖模型存儲爲不同的通用列表...取決於對象。在我看來,我有一個datagird,我想綁定到我的vm通用列表之一,這取決於用戶選擇ftp的文件。如何動態更改我的DataGrid的ItemSource標籤?有任何想法嗎?在運行時更改Itemsource MVVM

如果可能,我想讓代碼不在代碼後面。

回答

0

一個辦法是與的AutoGenerateColumns true的DataGrid和簡單地改變的ItemsSource

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

視圖模型

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

應該工作,但我不會走這條路;)

我會用數據模型和特定的,而不是通用的「包裝」對象爲您的不同列表。

+0

感謝您的迴應。將嘗試數據模板,但我可以使用ICollectionView顯示不同的列表,並將列表設置爲默認視圖,如下所示:ICollectionView DGItemsSourceBinding {get;設置{_DGItemSourceBiding = value; RaisePropetyChange(「DGItemsSourceBinding);}} DGItemsSourceBinding = CollectionViewSource.GetDefaultView(ListTheUserChoose); – colby