本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

绑定combobox的选中项到string类型属性

关于combobox的绑定,网上搜了一遍,绝大多数博文介绍的是绑定combobox到字典类型或者一个拥有id以及名称两个属性的对象。本文介绍的是将combobox的选中项单独绑定到一个string类型的属性。

绑定的目标

再次说明一下,本文介绍的是将combobox的选中项单独绑定到一个string类型的属性。

例如,下面的情况:

  • xaml前端界面
<ComboBox > 
   <ComboBoxItem>A</ComboBoxItem>
   <ComboBoxItem>B</ComboBoxItem>
   <ComboBoxItem>C</ComboBoxItem>
 </ComboBox>
  • 后台属性
public Class MyClass:INotifyPropertyChanged
{
private string myProperty;
public string MyProperty
{
 get{return myProperty;}
 set{
      myProperty=value;
      OnPropertyChanged("MyProperty");
    }
 }
}

需要做便是将类中string类型的属性myProperty绑定到combobox,绑定后,选中变化,myProperty属性的值随之改变为选中项的名称。myProperty属性值改变时,combobox界面随之更新显示myProperty的值。

如何绑定

下面介绍如何绑定,在介绍绑定之前,先了解combobox的一些属性。在wpf中,combobox拥有三个关于选中的属性以及一个关于显示的属性。它们分别为:

// 选中相关
SelectedItem
SelectedValue
SelectedValuePath

// 显示相关
DisplayMemberPath

通常情况下,当你绑定SelectedValue属性时,需要指定SelectedValuePath属性。这三个属性都拥有者不同的属性值,当你绑定value时就必须指定value的Path。如在这次的绑定介绍中,如果直接使用
MyProperty绑定SelectedItem或SelectedValue,则会出现的问题是 MyProperty得到的值为System.Windows.Controls.ComboBoxItem:A
之类的。

正确的绑定方法如下

<ComboBox SelectedValue="{Binding Path=MyProperty}"    SelectedValuePath="Content">
  <ComboBoxItem>A</ComboBoxItem>
  <ComboBoxItem>B</ComboBoxItem>
  <ComboBoxItem>C</ComboBoxItem>
</ComboBox>

绑定SelectedValue属性并且指定其对应的SelectedValuePath为content(文本内容),如此便可以成功将combobox的选中项单独绑定到一个string类型的属性。


本文由芒果浩明发布,转载请注明来源。
本文链接:https://mangoroom.cn/donet/bind-string-property-to-combobox-selecteditem.html


 继续浏览关于 wpfcombobox绑定SelectedItemstring 的文章

 本文最后更新于:2019/09/05 18:27:41,可能因经年累月而与现状有所差异

 引用转载请注明:芒果的博客 > DotNet > 绑定combobox的选中项到string类型属性