Skip to main content
 首页 » 编程设计

c#之检索集合和枚举选定值 WPF 属性网格

2024年01月12日32duanxz

我在我的项目中使用 WPF PropertyGrid (http://www.codeplex.com/wpg)。 但是我在使用这个组件时遇到了一些问题。

1) 我可以在 ComboBox 中显示我的 IList 集合。但我无法检索选定的值。我怎样才能得到选定的值?

2) 枚举自动显示在组合框中,但我无法像#1 那样检索选定的值。

你能帮帮我吗?

这是我的收藏品

public class Contact { 
// Other properties 
 
    [TypeConverter(typeof(MyConverter))] 
        public string Cities 
        { 
            get; 
            set; 
        } 
} 

这是我的转换器类

class MyConverter : TypeConverter 
    { 
        public override bool 
        GetStandardValuesSupported(ITypeDescriptorContext context) 
        { 
            return true; 
        } 
        public override StandardValuesCollection 
        GetStandardValues(ITypeDescriptorContext context) 
        { 
            List<string> list = new List<string>(); 
 
            list.Add("Istanbul"); 
            list.Add("Ankara"); 
            list.Add("Izmir"); 
 
            StandardValuesCollection cols = new 
            StandardValuesCollection(list); 
            return cols; 
        } 
    } 

当我将联系人类的实例设置为 WPF PropertyGrid 的实例属性时,我看不到任何组合框。但是,如果我将我的对象设置为 .Net PropertyGrid,我可以看到这个解决方案运行良好。

所以我认为这个 PG 不支持 TypeConverts,所以我该怎么办?

请您参考如下方法:

WPF propertygrid 是否支持类型转换器?在 Winforms PG 中完成的方式是您可以编写一个 TypeConverter 并将其作为属性添加到您的属性中。然后 TypeConverter 可以指定 StandardValuesCollection。因此,在您的对象中,您拥有采用一个值的属性,并且您的转换器指定了可能值的集合。