gpt4 book ai didi

c# - 通过 ICustomTypeDescriptor 生成 WPF DataGrid AutoColumn

转载 作者:太空狗 更新时间:2023-10-29 21:31:04 25 4
gpt4 key购买 nike

在一个测试项目中,我设法在以下场景中自动生成 WPF DataGrid 列,其中数据存储在字典中并通过 PropertyDescriptors 执行绑定(bind):

public class People:List<Person>{
...
}
public class Person:Dictionary<string,string>,INotifyPropertyChanged,ICustomTypeDescriptor
{

}

我遇到的问题是在我使用 MVVM 的现实生活项目中,PeopleViewModel 继承了 ViewModelBase,因此无法继承 List 。我已经尝试使用内部 List 来实现 IList 并将 DataContext 显式设置为 IList 引用,但这没有用。

我看过一篇关于绑定(bind) win 表单 DataGridView 的类似帖子 here ,所以我想知道相同类型的逻辑是否适用于 WPF,主要是什么导致在继承 List 时选择 ICustomTypeDescriptor 实现,而当您简单地实现 IList 时却丢失了。

最佳答案

DataGrid使用 CollectionView为您的收藏生成属性。更具体地说,它转换了CollectionView。至 IItemProperties , 默认为 CollectionView不执行。如果你不实现 IList (不是通用的),然后是默认的 CollectionView将会被使用。

因此,实现非泛型 IList接口(interface)应该解决这个问题( List<T> 实现了这两个,这就是为什么如果你从 List<Person> 派生它会起作用)。

关于c# - 通过 ICustomTypeDescriptor 生成 WPF DataGrid AutoColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738064/

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