在WPF组合框上设置多个SelectedValue

时间:2018-07-06 09:25:02

标签: c# wpf data-binding combobox

注意:如果某些参数看起来很奇怪,我正在使用 Mahapps.Metro

因此,我有一个名为User的模型,其中有一个StateId
组合框充满了States,因此当选择一个状态时,我将所选状态的Id放入User.StateId中,如下所示:

<ComboBox
    Grid.Column="0"
    Margin="0,5,0,0"
    mah:TextBoxHelper.ClearTextButton="True"
    mah:TextBoxHelper.Watermark="Select a State..."
    ItemsSource="{Binding States, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    SelectedItem="{Binding SelectedState, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    SelectedValue="{Binding User.StateId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    SelectedValuePath="Id" />

这很好用。但是,如果我想将所选项目的另一个参数放入User模型中怎么办?假设User还有一个名为StateName的属性,当我选择一个新的State时,我会将State.IdState.Name都传递到{{1 }}和User.StateId

希望这并不太令人困惑。谢谢!

1 个答案:

答案 0 :(得分:2)

SelectedValueSelectedItem只能绑定到一个源属性。但是您应该能够将SelectedItem绑定到State类的User属性,而不是尝试同时设置StateIdStateName

如果User类没有State属性,则可以绑定到视图模型的SelectedState属性(似乎已经存在),然后在其中turn设置用户的StateIdStateName属性。无论如何,您只能绑定到SelectedItemSelectedValue

相关问题