我有一个带有ItemsSource的ComboBox,我已将其绑定到List(Of String)。
我想要做的是当ComboBox的SelectedValue发生更改时,让XAML更新一个String属性。我见过一大堆使用
的TextBox的例子Text="{Binding Path=MyString}"
有些东西,但是如果将来我需要将ItemsSource更改为List(Of ObscureObject),我真的不会想要这样做......
答案 0 :(得分:2)
绑定到组合框的选定属性非常简单。
XAML:
<ComboBox ItemsSource={Binding Path=MyCollection} SelectedItem={Binding Path=MyItem}/>
CodeBehind:
public List<string> MyCollection {get; set;}
public string MyItem {get; set;}
如果要在所选项目中插入文字,则需要使用INotifyPropertyChanged
至于您的可伸缩性问题,它是一个相当小的更改,用于更新属性的类型以反映集合。否则你可以尝试绑定到Object
,尽管这意味着你将不断地将对象重新设置回你想要的状态。
答案 1 :(得分:0)
您可以使用ComboBox的SelectedItem属性来实现此目的。
<ComboBox ItemsSource="{Binding Path=YouList}"
SelectedItem="{Binding Path=MyString}" />
将来更改列表时,必须使用对象类型的属性绑定SelectedItem。
有关详细信息,请查看此文章 -
http://japikse.blogspot.com/2008/10/wpf-combobox-selecteditem-selectedvalue.html