C# 绑定到ObservableCollection可以工作,但不能绑定到ListCollectionView
我正在尝试将我的C# 绑定到ObservableCollection可以工作,但不能绑定到ListCollectionView,c#,wpf,observablecollection,listcollectionview,C#,Wpf,Observablecollection,Listcollectionview,我正在尝试将我的ListCollectionView绑定到组合框。然而,它似乎只有在绑定到我的ObservableCollection时才起作用 特性: private ListCollectionView sitesView; public ListCollectionView SitesView { get { return sitesView; } set { sitesView = value;
ListCollectionView
绑定到组合框。然而,它似乎只有在绑定到我的ObservableCollection
时才起作用
特性:
private ListCollectionView sitesView;
public ListCollectionView SitesView
{
get { return sitesView; }
set
{
sitesView = value;
RaisePropertyChanged(() => SitesView);
}
}
public ObservableCollection<ISite> SitesCollection { get; set; }
它工作正常,当我单击下拉列表时可以看到这些项目
修复尝试:在我将an项添加到
站点集合
后,我尝试在列表集合视图
和可观察集合
上发出属性更改通知,但没有产生任何影响。有什么想法吗?我没有时间测试我的答案;我道歉,并将跟进
我认为您的问题是因为CollectionViewSource.GetDefaultView(…)
返回一个ICollectionView
,我认为它本质上只是一个包装器,可以对底层数据进行排序
尝试将SitesView
设置为DefaultView
的SourceCollection
SitesView = (ListCollectionView)CollectionViewSource.GetDefaultView(SitesCollection).SourceCollection
事实上,下面的亚当有正确的答案……不。这应该行得通。如果没有看到添加到ObservaleCollection的项,则可能是绑定到视图模型的错误实例。
<ComboBox Grid.Row="2" ItemsSource="{Binding SitesView, Mode=TwoWay}"/>
<ComboBox Grid.Row="2" ItemsSource="{Binding SitesCollection, Mode=TwoWay}"/>
SitesView = (ListCollectionView)CollectionViewSource.GetDefaultView(SitesCollection).SourceCollection