我有一个带有Collection属性的usercontrol。我想要实现的是能够通过VS设计器(属性窗口/集合编辑器)添加/修改/删除该集合的某些数据类型的项目。
我有一个简单的课程:
public class Quantity
{
public string Name { get; set; }
public Type DataType { get; set; }
}
在我的UserControl中,我有:
private ObservableCollection<Quantity> _quantities = new ObservableCollection<Quantity>();
public ObservableCollection<Quantity> Quantities
{
get { return _quantities; }
}
问题是我能够通过VS Collection编辑器更改Name属性,但我无法以这种方式更改DataType属性。
那么我需要做些什么才能让它发挥作用?
答案 0 :(得分:1)
我不相信这可以通过属性编辑器来实现。但是,您可以在XAML中生成结果。以下是使用您的示例的样子:
<my:UserControl1>
<my:UserControl1.Quantites>
<my:Quantity Name="Hello World" DataType="{x:Type sys:Boolean}"/>
<my:Quantity Name="This is a double" DataType="{x:Type sys:Double}"/>
</my:UserControl1.Quantites>
</my:UserControl1>
如果您需要访问系统类型(就像我在我的示例中使用的那样),您可以包含以下xmlns:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
希望有所帮助:)