注意:如果某些参数看起来很奇怪,我正在使用 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.Id
和State.Name
都传递到{{1 }}和User.StateId
?
希望这并不太令人困惑。谢谢!
答案 0 :(得分:2)
SelectedValue
和SelectedItem
只能绑定到一个源属性。但是您应该能够将SelectedItem
绑定到State
类的User
属性,而不是尝试同时设置StateId
和StateName
。
如果User
类没有State
属性,则可以绑定到视图模型的SelectedState
属性(似乎已经存在),然后在其中turn设置用户的StateId
和StateName
属性。无论如何,您只能绑定到SelectedItem
或SelectedValue
。