如何在XAML中设置ComboBox DataContext?

时间:2012-08-30 15:53:57

标签: wpf xaml data-binding combobox

我正在尝试理解Binding所以我想出了一个非常简单的程序来尝试测试它。

我的MainWindow中有以下元素:

<ComboBox Name="comboBox1" ItemsSource="{Binding}" />

在我的代码中,我有以下可观察的集合:

public ObservableCollection<string> ComboItems = new ObservableCollection<string>();

我可以在运行时的任何时候以这种方式成功添加项目:

comboBox1.DataContext = ComboItems;
ComboItems.Clea();
ComboItems.Add("Item");

我的问题是,如何在XAML中设置DataContext,以便我不必在代码中执行此操作?有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

常见的事情是:

<Window DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <ComboBox ItemsSource="{Binding ComboItems}" .../>

但是,通常您希望将另一个对象实例注入DataContext,例如,查看MVVM模式。 WPF中的属性为inherited,因此ComboBox具有DataContext的{​​{1}},但它可以在任何级别覆盖。

注意:要使绑定工作Window需要是公共属性,而不是字段。

感兴趣的资源: