2010-05-23 23 views
1

我能想到的两种方法来实现依赖属性被详细视图之间共享:我在哪里定义主详细MVVM WPF场景中的详细视图共享的依赖项属性?

  1. 它们存储在主视图模型和数据绑定添加到当他们创建的细节视图模型,并结合他们在详细视图中。
  2. 不要将它们存储在视图模型中,而是使用FindAncestor直接绑定到主视图的属性。

每个的优缺点是什么,还有其他更好的选择吗?

编辑:

为了澄清,我有一个自定义控制(从Control衍生),其使用用于其的DataContext主视图模型。自定义控件的控件模板包含与ItemsSource绑定到主视图模型中的依赖项属性的ItemsControl。这个依赖属性是一个ObservableCollection的详细视图模型对象。 ItemsControl的项目模板绑定到详细视图模型中的属性。我需要的是由自定义控件(主视图)的控件模板和ItemsControl中所有项目的项目模板共享的单个属性。自定义控件将包含一个滑块或其他设置值,并且项目模板将简单地读取它。

对不起,如果我滥用条款,我仍然试图获得MVVM的挂钩。如果问题仍然不清楚,我可以尝试为简单的测试案例编写一些代码。

回答

0

在View的代码背后实现依赖属性是我见过的最流行的做法。这允许您通过Databinding与DP交互ViewModel。实际上没有任何缺点,DP是为了实现一个需要实现数据绑定的对象。

如果上述内容不是您要求的,请附上一个简短的代码示例。