我试图让我的<canvas id="canvas" width="200" height="200"></canvas>
绑定到一个组合框。但是,它似乎仅在我绑定到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
上提出属性更改通知,但它没有做出改变。有什么想法吗?
答案 0 :(得分:0)
我没时间测试我的答案;我道歉并将跟进。
我认为您的问题是因为CollectionViewSource.GetDefaultView(...)
返回ICollectionView
,我认为它基本上只是一个包装器,可以对基础数据进行排序。
尝试将SitesView
设置为SourceCollection
的{{1}}。
DefaultView