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

时间:2010-10-25 21:28:01

标签: c# wpf collections enums propertygrid

我在我的项目中使用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;
        }
    }

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

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

1 个答案:

答案 0 :(得分:0)

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