c# - 在 MVVM 中调用控制方法

标签 c# wpf mvvm

我目前正在使用 ArcGIS Runtime SDK .NET我想让 map 的当前视口(viewport)绑定(bind)到我的 View 模型上的属性。然而,视口(viewport)(表示为 Extent )没有 setter ,尽管它是一个依赖属性。

为了设置视口(viewport),我需要在控件上调用一个方法。但是我如何从 View 模型中做到这一点?我已经在 SO 上找到了类似的问题,但大多数问题都以 View 模型不应该意识到 View 来回答。我同意这一点,但不幸的是,我无法改变这样一个事实,即专有控件上的属性 setter 是一种不同于我可以绑定(bind)并从中读取值的实际属性的方法。

最佳答案

有许多方法可以完成可能被认为对 MVVM 友好的工作。
我建议您将 ArcGIS View 包装在您可以完全控制的自定义控件中。这样,您可以公开所需的依赖项属性并在自定义控件中处理它们的 setter 。

我几乎每次使用第三方组件时都使用这种方法,这样我就可以使组件与我的其他代码松散耦合,并且可以轻松替换它们。

关于c# - 在 MVVM 中调用控制方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40013231/

相关文章:

c# - 为什么此 DateTime.ParseExact 调用失败?

wpf - 通过 ViewModel MVVM WPF 设置 Listbox 或 ComboBox 的 SelectedItem

wpf - 与 ContextMenu 中的 HierarchicalDataTemplate 作斗争

c# - 实现 CollectionChanged

c# - 如何在给定 MessageDescriptor 的情况下创建 protobuf Message 实例(在 dotnet/C# 中)

c# - 如何管理 .NET 中多个类库的配置?

c# - 从 wcf 绑定(bind) transferMode 从 "Buffered"更改为 "Streamed"是否被视为客户端的重大更改?

c# - 跳过导航历史记录中的 View

wpf - WPF中的鼠标悬停事件?

ios - ReactiveCocoa,在按钮启用时结合两个信号