2011-01-22 7 views
4

У меня есть combobox, который, кажется, не обновляется, это модель просмотра.MVVM Combobox binding

На взгляд у меня есть

<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}"/>