WPF Combobox与List <string> </string>的绑定

时间:2014-02-20 04:17:51

标签: c# wpf

我有两个属性,一个是字符串列表,另一个是字符串。

private List<String> _property;
public List<String> Property
get
{
return new List<string>(){"string1", "string2"};
}
set{_property = value
}

public String SimpleStringProperty{get;set;}

我也在XAML中定义了一个Combobox

<Combobox ItemsSource="{Binding Property , Mode="TwoWay"}" Text="Select Option" />    

现在组合框正确显示两个选项:“string1”和“string2”

当用户选择其中一个时,我想将SimpleStringProperty设置为该值。但是,通过双向绑定从组合框中返回的“值”不是selectedItem,而是List<String>。我怎么能这样做?我对wpf很新,所以请原谅业余爱好者。

3 个答案:

答案 0 :(得分:20)

<Combobox ItemsSource="{Binding Property}" SelectedItem="{Binding SimpleStringProperty, Mode=TwoWay}" Text="Select Option" />

这是未经测试的,但它至少应该非常接近你所需要的。

答案 1 :(得分:3)

您需要使用SelectedItem的{​​{1}}属性绑定到String属性。

combobox

答案 2 :(得分:1)

是什么帮助了我:

  1. 使用 SelectedItem
  2. 添加 UpdateSourceTrigger = PropertyChanged
  3. IsSynchronizedWithCurrentItem =“ True ”以确保所选项始终与实际值同步
  4. 模式 = TwoWay 如果您需要从GUI更新来自GUI
  5. 所以最好的方法是,如果来源是

    List<string>
    

    示例:

     <ComboBox 
        IsSynchronizedWithCurrentItem="True"
        ItemsSource="{Binding SomeBindingPropertyList}"
        SelectedItem="{Binding SomeBindingPropertySelectedCurrently, 
                        Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
    

    其他信息