WPF中ComboBox的SelectedItem和SelectedValue

WPF中ComboBox的SelectedItem和SelectedValue

SelectedItem

SelectedItem属性绑定的是ComboBox中选中的整个对象。这通常用于当你需要获取选中项的所有信息时使用。

例如,假设你有一个包含Person对象的列表,每个Person对象有Name和Age属性,你想在ComboBox中显示每个人的名字,并在选中某个人时获取整个Person对象的信息。

  • View中:
1
2
3
4
<ComboBox ItemsSource="{Binding People}"
DisplayMemberPath="Name"
SelectedItem="{Binding SelectedPerson}">
</ComboBox>
  • ViewModel中:
1
2
3
4
5
public class MainViewModel
{
public ObservableCollection<Person> People { get; set; }
public Person SelectedPerson { get; set; }
}

在这个例子中,当你从ComboBox中选择一个人时,SelectedPerson属性将会更新为对应的Person对象。

SelectedValue

SelectedValue属性绑定的是ComboBox中选中项的某个特定属性。这通常用于当你只需要获取选中项的某个特定值而不是整个对象时使用,同时需要配合SelectedValuePath属性。

继续使用上面的例子,如果你只关心选中的Person的Name属性,你可以使用SelectedValue来绑定。

  • View中:
1
2
3
4
5
<ComboBox ItemsSource="{Binding People}"
DisplayMemberPath="Name"
SelectedValuePath="Name"
SelectedValue="{Binding SelectedName}">
</ComboBox>
  • ViewModel中:
1
2
3
4
5
public class MainViewModel
{
public ObservableCollection<Person> People { get; set; }
public string SelectedName { get; set; }
}

在这个例子中,当你从ComboBox中选择一个人时,SelectedName属性将会更新为该Person的Name属性的值。

作者

步步为营

发布于

2024-05-10

更新于

2025-03-15

许可协议