【发布时间】:2023-04-01 18:13:01
【问题描述】:
注意:如果某些参数看起来很奇怪,我正在使用 Mahapps.Metro。
所以,我有一个名为 User 的模型,它有一个 StateId。
Combobox is filled with States, so when a state is selected I put the Id of the selected state into User.StateId like this:
<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 都传递给User.StateId 和User.StateName?
希望这不会太令人困惑。谢谢!
【问题讨论】:
-
使用 SelectedItem 并设置 User 的 State 属性,而不是设置 StateId 和 StateName?
-
我并没有真正使用导航属性,但我想这是开始这样做的另一个好理由。谢谢mm8,像往常一样。
-
@Desomph 当您选择一个项目时,在视图模型中触发了 SelectedState 属性更改,当您的视图模型中发生这种情况时,您不能从那里设置用户声明和名称吗?跨度>
标签: c# wpf data-binding combobox