【发布时间】:2011-04-13 02:19:53
【问题描述】:
我有这个项目我喜欢使用 WPF ListView
它看起来像 Winform 中的 PropertyGrid。我已经在网上找到了一些实现,哪个是最好的?
来自what I learn,我只能从 DependencyObject 绑定一个类,是否可以绑定通用列表或字典,myClass 将包括名称、值、类型(字符串、双精度、布尔值、查找列表、. ..)。一旦我绑定它,它将添加相关模板,例如对于查找列表,它将在单元格模板中添加组合框。
-
此外,我喜欢将所有内容都放在一个配置文件中。例如我有这个配置:
名称1,值1,字符串 名称 2,值 2,布尔值 Name3, Value3, 查找, N3_option1, N3_option2, N3_option3, ...
我的代码将首先读取配置文件,然后从那里,我从数据库中读取 Name1/Name2/Name3,在我的 ListView 中显示它们,从 Name3 中,您从 (N3_option1, N3_option2, N3_option3, ...) 中选择值。
如果您能给我指出正确的方向,我将不胜感激。
更新: 这是我正在查看的 3 个示例:
DataTemplates in Action: Building a simple PropertyGrid、WPF PropertyGrid - MVVM techniques 和 WPF Property Grid。
“WPF 属性网格”对于像我这样的初学者来说太复杂了。就个人而言,我更喜欢“DataTemplates in Action: Building a simple PropertyGrid”。
它还有代码选择 DataTemplate 取决于每个类属性的 DataType: bool 使用 BooleanDataTemplate 这是一个复选框;枚举使用 EnumDataTemplate 这是一个组合框。
我还想更进一步,添加自定义类型:查找,它将显示为下拉列表,但值列表来自数据库。例如
属性名称:汽车制造商,值来自“SELECT LOOKUP_VALUE FROM LOOKUP WHERE LOOKUP_KEY = 'CAR_MFG'”,它将返回如下列表:Toyota, Ford, Nissan, Honda, VW, BMW, ...
如果我有 > 1 个查找属性,我如何指定它们? LookupDataTemplate1, LookupDataTemplate2, ...,然后如何在 XAML 资源中指定它们。并且所有 DataTemplate 都是在 XAML 中预定义的,在这种情况下我该怎么做。
类似于 EnumToListConverter,如何创建 LookupmToListConverter1、LookupmToListConverter2?
【问题讨论】: