我有以下代码
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var entities = new DemoEntities();
var depts = entities.Depts.ToList(); // entity framwork dept table
CollectionViewSource cvs = (CollectionViewSource)CollectionViewSource.GetDefaultView(depts);
}
}
我的目的是将此集合绑定到 XAML 中的以下 Windows 资源
<Window.Resources>
<CollectionViewSource x:Key="Departments"/>
</Window.Resources>
Using
CollectionViewSource collectionViewSource = this.FindResource("Departments") as CollectionViewSource;
但是,在执行以下代码行时
CollectionViewSource cvs = (CollectionViewSource)CollectionViewSource.GetDefaultView(depts);
它抛出一个异常,并且该异常的内部异常如下
{"Unable to cast object of type 'System.Windows.Data.ListCollectionView' to type 'System.Windows.Data.CollectionViewSource'."}
有人可以通过提供如何使用隐藏代码创建 CollectionViewSource 来帮助我吗?
CollectionViewSource.GetDefaultView(depts)
返回一个ICollectionView
. CollectionViewSource
主要是确定什么类型的手段ICollectionView
根据提供的集合使用。
如果你真的想创建一个CollectionViewSource
但是,您可能可以这样做:
var collectionViewSource = new CollectionViewSource();
collectionViewSource.Source = depts;
然而,我确实相信您想要实现的目标可以以更好的方式完成。例如:
var collectionViewSource = this.FindResource("Departments") as CollectionViewSource;
collectionViewSource.Source = depts;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)