全局访问WPF控件

时间:2017-07-30 19:15:17

标签: c# wpf mvvm user-controls wpf-controls

我已经尝试了很多选项很长一段时间,这是我想到的最后一个选项,所以我会试着问: 我正在尝试在WPF中开发一个MVVM项目,我已经下载了一个即用型WPF控件(GMap.NET)。但是,这个控件还没有准备好在MVVM中使用它,我是一个新手,所以我不想自己修改源代码。控件需要设置许多参数(不能通过XAML访问,因此我不能简单地绑定它们),并在控件对象上调用一些函数。所以这是我的问题:

如何从代码中的任何位置访问WPF控件实例并从那里进行管理?

特别是,我想从ViewModel部分访问View元素,我知道它会制作模式,但我不知道如何避免它,而且我的时间不多了。

1 个答案:

答案 0 :(得分:2)

很难说不知道具体的控制。但总的来说,我看到2个选项可以使MVVM符合这样的控制:

  1. 对控件进行子类化并添加依赖项属性,以便可以在XAML中使用
  2. 创建一个"容器控件"包装unMVVMable控件并提供所需的依赖项属性。
  3. 但是,如果控件的API很复杂并且不仅具有属性,而且还有一些方法,那么在这里打破MVVM可能是务实的。 MVVM不是从视图中分离GUI相关逻辑的唯一方法。您可以使用接口抽象已使用的函数,并使用视图模型中的接口。