2012-03-09 85 views
0

我有以下XAML:將列表<Group>綁定到ComboBox?

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

在後面的代碼我設置this.DataContext到我的視圖模型。

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; } 
} 

不幸的是,這是行不通的。我如何綁定組合框來顯示組名?

回答

1

您的代碼有兩個問題。首先,綁定僅適用於屬性,因此綁定無法找到組字段。將其更改爲屬性。

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

第二個是DisplayMemberPath等待字符串不是綁定。只需將其更改爲「名稱」。

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

Tnx其工作。我用一個名稱替換它,但保持列表原樣。 – Bip 2012-03-09 17:12:23

0

您是否試過DisplayMemberPath =「Name」?

+0

是的,現在工作。 Tnx :) – Bip 2012-03-09 17:12:52