将struct添加到Combobox并将struct member显示为选定项

时间:2012-01-27 14:38:20

标签: wpf combobox struct

我有一个简单的结构

private struct _config
{
    public string name;
    public int id;
}

我想将它添加到组合框中,但将名称显示为组合框中的显示名称。有谁知道怎么做?

3 个答案:

答案 0 :(得分:2)

Data bindingtemplating,您需要属性而不是字段。

(因为你只想要文字,你可以放弃模板并使用DisplayMemberPath

答案 1 :(得分:2)

我强烈建议您阅读HB发布的链接,但是这里是您希望努力的代码:

将您的ComboBox项目更改为获取/设置访问者方法:

private struct Config
{
    public string Name { get; set; }
    public int Id { get; set; }
}

然后你的ComboBox XAML看起来应该是这样的

<ComboBox x:Name="MyComboBox" DisplayMemberPath="Name" />

答案 2 :(得分:1)

ComboBox,在其他任何东西的缺席中,只使用ToString()方法将您放入.Items的任何内容显示出来。因此,快速而肮脏的方法只是覆盖结构的ToString()方法以返回名称,即

private struct _config
{
    public string name;
    public int id;

    public override string ToString()
    {
        return name;
    }
}