我正在尝试理解Binding所以我想出了一个非常简单的程序来尝试测试它。
我的MainWindow中有以下元素:
<ComboBox Name="comboBox1" ItemsSource="{Binding}" />
在我的代码中,我有以下可观察的集合:
public ObservableCollection<string> ComboItems = new ObservableCollection<string>();
我可以在运行时的任何时候以这种方式成功添加项目:
comboBox1.DataContext = ComboItems;
ComboItems.Clea();
ComboItems.Add("Item");
我的问题是,如何在XAML中设置DataContext,以便我不必在代码中执行此操作?有可能吗?
谢谢!
答案 0 :(得分:3)
常见的事情是:
<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">
<ComboBox ItemsSource="{Binding ComboItems}" .../>
但是,通常您希望将另一个对象实例注入DataContext
,例如,查看MVVM模式。 WPF中的属性为inherited,因此ComboBox
具有DataContext
的{{1}},但它可以在任何级别覆盖。
注意:要使绑定工作Window
需要是公共属性,而不是字段。
感兴趣的资源: