2011-01-22 131 views
4

我有一个combobox,似乎没有更新它的视图模型。MVVM Combobox绑定

在视图我有

<ComboBox Grid.Row="0" 
      Grid.Column="1" 
      ToolTip="Current rank of the officer" 
      ItemsSource="{Binding Path=RanksAvailable}" 
      DisplayMemberPath="Name" 
      SelectedValuePath="Name" 
      SelectedValue="{Binding Path=SelectedRank, Mode=TwoWay}"/> 

在视图模型我有

public List<Rank> RanksAvailable {get; set;} 
    private Rank _selectedRank; 

    public Rank SelectedRank 
    { 
     get { return _selectedRank; } 
     set 
     { 
      if (_selectedRank != value) 
      { 
       _selectedRank = value; 
       this.isDirty = true; 
       RaisePropertyChanged("SelectedRank"); 
      } 
     } 
    } 

组合框被填充好了,我似乎无法得到一个值出来。

回答

14

问题是你正在使用SelectedValuePath =“名称”只是删除它,它会工作。

你的ComboBox就become-

<ComboBox Grid.Row="0" 
      Grid.Column="1" 
      ToolTip="Current rank of the officer" 
      ItemsSource="{Binding Path=RanksAvailable}" 
      DisplayMemberPath="Name" 
      SelectedValue="{Binding Path=SelectedRank, Mode=TwoWay}"/>