WPF将组合框选定的值绑定到视图模型中的字符串

时间:2017-05-20 18:33:36

标签: c# wpf data-binding combobox

我认为我有这个组合框:

<ComboBox SelectedValue="{Binding StringObj, UpdateSourceTrigger=PropertyChanged}">
       <ComboBoxItem>string0</ComboBoxItem>
       <ComboBoxItem>string1</ComboBoxItem>
       <ComboBoxItem>string2</ComboBoxItem>
       <ComboBoxItem>string3</ComboBoxItem>
</ComboBox>

在我的视图模型中,我有这个字符串对象:

    private string _stringObj;
    public string StringObj
    {
        get { return _stringObj; }
        set { _stringObj = value; }
    }

如何将组合框中的选定值绑定到字符串变量,以便在视图模型中使用它?这是我到目前为止所实现的,但它不起作用,因为我不太了解这种绑定的东西。

1 个答案:

答案 0 :(得分:0)

您无法将ComboBoxItem属性设置为ComboBoxItems值。

您可以将strings替换为XAML中的SelectedItem并绑定<ComboBox SelectedItem="{Binding StringObj, UpdateSourceTrigger=PropertyChanged}" xmlns:s="clr-namespace:System;assembly=mscorlib"> <s:String>string0</s:String> <s:String>string1</s:String> <s:String>string2</s:String> <s:String>string3</s:String> </ComboBox> 属性:

SelectedValuePath

或者您只需将<ComboBox SelectedValue="{Binding StringObj, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="Content"> <ComboBoxItem>string0</ComboBoxItem> <ComboBoxItem>string1</ComboBoxItem> <ComboBoxItem>string2</ComboBoxItem> <ComboBoxItem>string3</ComboBoxItem> </ComboBox> 属性设置为“内容”:

Content

这会将您的源属性设置为所选ComboBoxItem的{​​{1}}。