我的WPF应用程序在主(父)窗口中有一个选项卡控件。每个选项卡都包含一个UserControl,用于清除主窗口后面的xaml和代码。我正在使用this post by Julie Lerman中概述的实体框架拖放技术。我没有使用MVVM。该应用程序在单个表/实体上执行CRUD操作。使用外键引用将多个查找表/实体连接到主表。父窗口有一个类级别_context
变量引用我的实体容器的新实例,我认为这是我的数据库连接(类固醇)。 如何将_context
从主窗口传递给用户控件?如何将父窗口中的实体容器(上下文)引用传递给子用户控件?
在父窗口上创建Context
属性引用_context
似乎是一个好主意。问题是,打破我的父窗口xaml。它不再编译,因为我正在访问UserControl的加载事件中的Context
。我猜控制是在父窗口之前编译的,导致在主窗口xaml中引用一个空引用(从子代到父代Context
)异常。一切工作正常,如果我只是在UserControl中创建一个新的_childContext
变量,但似乎是一个容易出错的解决方案。
我需要_context
参考的理由是使用它来填充我的下拉查找列表。所有绑定的UserControl字段都在父窗口中设置了它们的DataContext。父DataContext引用正在执行CRUD的单个实体/表。这个DataContext不包括我的查找表。这就是为什么我认为我需要对_context
的引用,所以我可以使用它在UserControl内部生成LINQ语句来填充我的查找列表。
在此先感谢。
我认为这会弄乱整个应用程序的当前DataContext。它现在基于正在更新的一个实体/表的ObservableCollection。此ObservableCollection被分配给CollectionViewSource的Source属性,该属性成为父窗口的DataContext。它也成为UserControls的继承的DataContext。虽然该父实体具有指向我的查找表的导航属性,但我不认为它可以(按原样)填充我的组合框的ItemsSource。我似乎需要两个(或更多)DataContexts! – DeveloperDan 2011-05-18 14:44:51