2014-01-21 164 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

相关问题