Добавить структуру в Combobox и отобразить элемент структуры в качестве выбранного элемента - PullRequest
0 голосов
/ 27 января 2012

Я получил простую структуру

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

Я хочу добавить его в выпадающий список, но указать имя в качестве отображаемого имени в выпадающем списке. Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Я бы настоятельно рекомендовал прочитать ссылки, размещенные HB, однако вот код, к которому вы стремитесь:

Измените ваши элементы ComboBox, чтобы иметь методы доступа get / set:

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

Тогда ваш ComboBox XAML должен выглядеть следующим образом

<ComboBox x:Name="MyComboBox" DisplayMemberPath="Name" />
2 голосов
/ 27 января 2012

Привязка данных и на шаблонах , вам понадобятся свойства вместо полей.

(Поскольку вы просто хотите текст, вы можете отказаться от шаблонов и также использовать DisplayMemberPath)

1 голос
/ 27 января 2012

ComboBox, в отсутствие чего-либо еще, просто использует метод ToString() того, что вы положили в его .Items, чтобы отобразить их.Таким образом, быстрый и грязный способ сделать это - просто переопределить метод ToString() структуры, чтобы вернуть имя, то есть

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

    public override string ToString()
    {
        return name;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...