在一个测试项目中,我设法在以下场景中自动生成 WPF DataGrid 列,其中数据存储在字典中并通过 PropertyDescriptors 执行绑定:
public class People:List<Person>{
...
}
public class Person:Dictionary<string,string>,INotifyPropertyChanged,ICustomTypeDescriptor
{
}
我遇到的问题是在我的现实生活项目中,我正在使用 MVVM,所以它是继承 ViewModelBase 的People ViewModel,因此不能继承 List<Person>。我尝试使用内部 List<Person> 实现 IList<Person> 并将 DataContext 显式设置为 IList<Person> 引用,但这不起作用。
我在这里看到了关于绑定 win 表单 DataGridView 的类似帖子,所以我想知道 WPF 中是否适用相同类型的逻辑,主要是什么导致 ICustomTypeDescriptor 实现在继承 List<T> 时被拾取,即当您简单地实现 IList<T> 时丢失。