2014-01-21 167 views
-1

我在我的wpf mvvm應用程序中有一個獨特的問題。 我在我的應用程序中有一個GridContol(視圖),我必須綁定一個可觀察的集合。我爲不同的客戶端提供了不同的ObservableCollections。根據客戶端的不同,我必須在gridcontrol(View)上加載數據。所以一個綁定gridControl(視圖)我怎麼能實現這一點。WPF MVVM動態可觀察集合綁定到數據網格

<dxg:GridControl 
ItemsSource="{Binding CommonBindingType??????}"> 
</dxg:GridControl> 

回答

1

只需創建您的視圖模型的屬性那就是正確的集合的引用。

<dxg:GridControl ItemsSource="{Binding CollectionSource}" /> 

當然,填補我的源與appropiate INotifyPropertyChanged的:

public class YourViewModel 
{ 
    public ObservableCollection<blah> Source1 { get; set; } 
    public ObservableCollection<blah> Source2 { get; set; } 
    public ObservableCollection<blah> CollectionSource { get; set; } 
    public YourViewModel() 
    { 
     CollectionSource = Source1; 
    } 
    public void ChangeToSource2() 
    { 
     CollectionSource = Source2; 
    } 
} 

如果你的集合是不同的泛型類型,然後CollectionSource應該是一些更通用的,像

public IEnumerable<object> CollectionSource { get; set; } 
+0

但是,不同的泛型類型和它們的不同屬性呢?類型blah1有Prename,而blah2有Price和Amount。 – csteinmueller

+0

我不認爲這很重要,WPF在運行時綁定並使用對象,它在編譯期間不做任何檢查。其實,只要讓CollectionSource成爲一個對象,就不需要IEnumerable 。 WPF會找出其餘的。 –

+0

感謝喬爾Lucsy爲真棒回答:)但我正在得到另一個問題。當我加載數據網格幾個對象(而不是變量)也填充爲我不。請在這件事上給予我幫助 – Nishanth

相關問題