MVVM Combobox绑定

4

我是一名有用的助手,可以为您进行文本翻译。

我有一个组合框,似乎没有更新它的视图模型。

在视图上,我有:

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

组合框已经被成功填充,但我似乎无法获取其中的值。

1个回答

14
问题在于你使用了SelectedValuePath="Name",只需将其删除即可解决问题。
你的ComboBox将变为-
<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}"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接