DataContext通常是如何设置的?

时间:2010-10-19 06:55:52

标签: wpf

我已经创建了一个新的WPF项目,并投入了一个DataGrid。现在,我正在尝试找出将数据集合绑定到它的最简单方法。

我下载的示例似乎是在窗口c'tor中执行的:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new ViewModel();
    }
}

但是,然后绑定似乎没有出现在Visual Studio的“属性”窗口中。我很确定有一种方法可以在XAML中设置数据上下文......如果我可以通过属性窗口直接执行它会使我更高兴,但所有Binding选项都是空的。什么是典型的方法?

编辑: At 14 minutes,他开始讨论设置数据上下文的其他方法,例如静态资源和一些“注入”方法。我想了解更多关于那些的信息!

2 个答案:

答案 0 :(得分:3)

我通常使用的是MVVM。您可以通过在代码中设置数据上下文并拥有保存数据的模型类型来实现简化版本。

示例:在您的代码中

DataContext = Model; // where Model is an instance of your model

然后在你看来

<DataGrid .... ItemsSource="{Binding SomeProperty}">....

SomeProperty是视图模型上的可枚举属性

您还可以使用DataContext属性

在XAML中设置数据上下文
<uc:SomeUserControl DataContext="{Binding AnotherProperty}"....

这将在您模型的DataContext的{​​{1}}内运行您的用户控件。

请注意,这已经过时了,但它会帮助你。

答案 1 :(得分:2)

查看MVVM design pattern。这种模式非常适合wpf应用程序。

描述了存储数据的位置以及如何将ui绑定到数据。