gpt4 book ai didi

c# - 如何在 wpf 应用程序的代码隐藏中创建 Collection View 源

转载 作者:太空狗 更新时间:2023-10-30 00:16:08 25 4
gpt4 key购买 nike

我有以下代码

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);
}
}

我的目的是将此集合绑定(bind)到 XAML 中的以下 Windows 资源

<Window.Resources>
<CollectionViewSource x:Key="Departments"/>
</Window.Resources>

使用

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) 返回一个 ICollectionViewCollectionViewSource 主要是一种根据提供的集合确定要使用哪种类型的 ICollectionView 的方法。

但是,如果您真的想创建一个 CollectionViewSource,您可能会这样做:

var collectionViewSource = new CollectionViewSource();
collectionViewSource.Source = depts;

不过,我确实相信您可以通过更好的方式来实现您想要实现的目标。例如:

var collectionViewSource = this.FindResource("Departments") as CollectionViewSource;
collectionViewSource.Source = depts;

关于c# - 如何在 wpf 应用程序的代码隐藏中创建 Collection View 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com