gpt4 book ai didi

c# - 从 ViewModel 操作 View

转载 作者:行者123 更新时间:2023-12-03 10:23:01 26 4
gpt4 key购买 nike

早上好,提前感谢您的回答。

我的 View 实现了一个平移和缩放库:A WPF Custom Control for Zooming and Panning

在 View 中,有一个控件可以根据鼠标双击缩放到一个点:

private void zoomAndPanControl_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if ((Keyboard.Modifiers & ModifierKeys.Shift) == 0)
{
Point doubleClickPoint = e.GetPosition(content);
zoomAndPanControl.AnimatedSnapTo(doubleClickPoint);
}
}

我想强制“zoomAndPanControl。 AnimatedSnapTo (doubleClickPoint);”当我拉动它时,根据我绘制的几何点的 ViewModel 数据到一个特定的点。因此, View 将平移到新几何 x,y 坐标的点。几何/点已经绑定(bind)到 View 。

作为补充说明,提取几何点的数据是在 DispatchTimer 中进行的。在读取新的几何坐标时,我希望 View 可以平移并遵循这些坐标。

当我获取数据时,是否有一种简单的方法可以从 ViewModel 访问此控件?可能用自定义点模拟鼠标事件?我不确定最好的方法。

最佳答案

要通过绑定(bind)控制你的 View ,你的控件需要绑定(bind)一些东西。

  • 将依赖属性添加到接受“点”类型的自定义控件。
  • 使用从您的 View 模型实现的 INotifyPropertyChanged 绑定(bind)一个属性到该 DP - 请注意,如果您想避免在 VM 中使用“Point”类,可以在此处添加一个 ValueConverter。
  • 在 DP 的定义中,调整 setter 以触发 AnimatedSnapTo(...) 方法

  • 希望有帮助。

    关于c# - 从 ViewModel 操作 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25206573/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com