【发布时间】:2017-07-28 08:45:15
【问题描述】:
我正在尝试让我的ListCollectionView 绑定到组合框。但是,它似乎只有在我绑定到我的 ObservableCollection 时才有效。
属性:
private ListCollectionView sitesView;
public ListCollectionView SitesView
{
get { return sitesView; }
set
{
sitesView = value;
RaisePropertyChanged(() => SitesView);
}
}
public ObservableCollection<ISite> SitesCollection { get; set; }
构造函数:
SitesCollection = new ObservableCollection<ISite>();
SitesView = (ListCollectionView)CollectionViewSource.GetDefaultView(SitesCollection);
当这样绑定时:
<ComboBox Grid.Row="2" ItemsSource="{Binding SitesView, Mode=TwoWay}"/>
当我单击组合框中的下拉菜单时,我添加到 SitesCollection 的任何项目都不会显示。但如果我像这样进行绑定:
<ComboBox Grid.Row="2" ItemsSource="{Binding SitesCollection, Mode=TwoWay}"/>
它工作正常,当我单击下拉菜单时我会看到这些项目。
尝试修复:在我将项目添加到SitesCollection 后,我尝试在ListCollectionView 和ObservableCollection 上发出属性更改通知,但没有任何区别。有什么想法吗?
【问题讨论】:
-
其实下面的亚当有正确的答案...
-
没有。这应该有效。如果您没有看到添加到 ObservableCollection 的项目,则可能是绑定到了错误的视图模型实例。
标签: c# wpf observablecollection listcollectionview