Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MVVM Combobox binding

Tags:

combobox

mvvm

I have a combobox that doesn't seem to be updated it's view model.

On the view I have

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

in the view model I have

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

the combobox is being populated alright, I just can't seem to get a value out of it.

like image 446
Scott Avatar asked Dec 09 '22 11:12

Scott


1 Answers

The problem is you are using SelectedValuePath="Name" just remove it and it will work.

Your ComboBox will 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}"/>
like image 72
Jason Quinn Avatar answered Feb 16 '23 19:02

Jason Quinn