将List <group>绑定到ComboBox?</group>

时间:2012-03-09 17:00:00

标签: c# .net wpf silverlight data-binding

我有以下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 个答案:

答案 0 :(得分:1)

您的代码存在两个问题。首先,绑定仅适用于属性,因此绑定无法找到“组”字段。将其更改为财产。

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

第二个是DisplayMemberPath等待字符串而不是绑定。将其简单地更改为&#34; Name&#34;。

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

答案 1 :(得分:0)

您是否尝试过DisplayMemberPath =“Name”?