2

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

我的 MainWindow 中有以下元素:

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

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

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

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

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

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

谢谢!

4

1 回答 1

4

常见的是:

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

但是通常您想将另一个对象实例注入为DataContext,例如查看 MVVM 模式。WPF 中的属性是继承的,因此ComboBox具有 的DataContextWindow它可以在任何级别被覆盖。

注意:要使绑定起作用ComboItems,必须是公共属性,而不是字段。

感兴趣的资源:

于 2012-08-30T15:56:34.193 回答