2012-08-29 66 views
0

這裏是我的對象模型綁定組合框的集合

private class ShellItem 
{ 
    public string Name { get; set; } 

    public string Command { get; set; } 

    public List<ShellMenu> ShellMenus { get; private set; } 

    public ShellItem() 
    { 
     ShellMenus = new List<ShellMenu>(); 
    } 
} 


public class ShellMenu 
{ 
    public string ExtName; 

    public string KeyName; 

    public string FileType; 

    public string MenuName { get; set; } 

    public string Command { get; set; } 

} 

這是我的XAML。

<ListView Name="listViewRightClick" HorizontalAlignment="Stretch" Height="Auto" Margin="10,10,26.667,107.667" VerticalAlignment="Stretch" Width="Auto"> 
      <ListView.View> 
       <GridView> 
        <GridViewColumn Width="200" Header="Name" DisplayMemberBinding="{Binding Name}"/> 
        <GridViewColumn Width="600" Header="Command" DisplayMemberBinding="{Binding Command}"/> 
        <GridViewColumn Width="200" Header="FileTypes"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <ComboBox ItemsSource="{Binding ShellMenus}" 
              SelectedValue="{Binding MenuName}" 
              Margin="-6, 0, -6, 0"/> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
       </GridView> 
      </ListView.View> 
     </ListView> 

我的問題是不是顯示shellMenu的MENUNAME它顯示了組合框的每一個項目MyNamespace.ShellMenu。

+0

我認爲,在這個環節上,你可以找到答案:http://social.msdn.microsoft.com/Forums/eu/wpf/thread/5fb63c30-3ce0-406b-b775-875e1250e896 – Chaitali

回答

4

SelectedValue是關於僅選擇,使用DisplayMemberPath爲顯示。

DisplayMemberPath="MenuName" 
+0

它不工作。 –

+0

@RaviPatel:你是否指定了一個綁定?這只是一個成員名稱。 –

+0

它現在正在工作,但爲什麼我們不把它稱爲DisplayMemberPath =「Binding MenuName」。這是我第一天使用wpf。 –

0

您需要在ComboBox指定DisplayMemberPath

<ComboBox 
    ItemsSource="{Binding ShellMenus}" 
    SelectedValue="{Binding MenuName}" 
    DisplayMemberPath="MenuName" 
    Margin="-6, 0, -6, 0"/>