【问题标题】:Bind a List<Group> to ComboBox?将 List<Group> 绑定到 ComboBox?
【发布时间】:2012-03-09 16:59:59
【问题描述】:

我有以下 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; }
}

很遗憾,这不起作用。如何绑定组合框以显示组名?

【问题讨论】:

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


    【解决方案1】:

    您的代码存在两个问题。首先是绑定仅适用于属性,因此绑定找不到 Group 字段。将其更改为属性。

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

    第二个是 DisplayMemberPath 等待字符串而不是绑定。只需将其更改为“名称”。

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

    【讨论】:

    • Tnx 它的工作。我用名称替换了它,但 List 保持原样。
    【解决方案2】:

    您是否尝试过 DisplayMemberPath="Name"?

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多