3

我有一个带有 Collection 属性的用户控件。我想要实现的是能够通过 VS 设计器(属性窗口/集合编辑器)添加/修改/删除该集合的某些数据类型的项目。

我有一个简单的课程:

public class Quantity
{
    public string Name { get; set; }
    public Type DataType { get; set; }
}

在我的用户控件中,我有:

private ObservableCollection<Quantity> _quantities = new ObservableCollection<Quantity>();
public ObservableCollection<Quantity> Quantities
{
    get { return _quantities; }
}

问题是我可以通过 VS Collection 编辑器更改 Name 属性,但我无法以这种方式更改 DataType 属性。

通过 VS 集合编辑器修改集合

那么我该怎么做才能让它工作呢?

4

1 回答 1

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"

希望能帮助到你 :)

于 2013-03-01T05:46:57.057 回答