Привязать список <Group>к ComboBox? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть следующий XAML:

<ComboBox 
 Name="groupComboBox" 
 ItemsSource="{Binding Path=MyServiceMap.Groups}"
 DisplayMemberPath="{Binding Name}"/>

В коде позади я устанавливаю this.DataContext для моей viewModel.

private ServiceMap _serviceMap;
    public ServiceMap MyServiceMap
    {
        get
        {
            return _serviceMap;
        }
        set
        {
            _serviceMap = value;
            OnPropertyChanged("MyServiceMap");
        }
    }

Мой класс ServiceMap равен

public class ServiceMap
{
    //other code
    public List<Group> Groups = new List<Group>();
}

и наконец:

public class Group
{
    public string Name { get; set; }
}

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

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Есть две проблемы с вашим кодом. Во-первых, привязки работают только со свойствами, поэтому привязка не может найти поле «Группа». Измените его на свойство.

public class ServiceMap
{
    public List<Group> Groups { get; set; }
}

Вторым является то, что DisplayMemberPath ожидает строку, а не привязку. Измените его просто на «Имя».

<ComboBox Name="groupComboBox"
    ItemsSource="{Binding Path=MyServiceMap.Groups}"
    DisplayMemberPath="Name" />
0 голосов
/ 09 марта 2012

Вы пробовали DisplayMemberPath = "Name"?

...