gpt4 book ai didi

c# - WPF:从 viewModel 调用 View 中的方法

转载 作者:太空狗 更新时间:2023-10-29 19:43:10 32 4
gpt4 key购买 nike

我在 WPF 应用程序中使用 AvalonDock,需要保留用户设置的 AvalonDock 布局(移动、停靠、分离面板)。

执行此操作的函数位于控件本身(SaveLayout、RestoreLayout)上。

正确的做法是什么?

现在我在 mainWindowViewModel 中有一个命令,该命令由应用程序在创建窗口 View 和 View 模型的实例时创建。它基本上使中继命令调用一个匿名方法,该方法调用 View 控件上所需的函数。这是可行的,因为应用程序为其创建了窗口和 View 模型。

但是如果一些较低级别的 View 和 View 模型必须这样做,我将如何处理这个问题?如果使用这种方法,我仍然必须在应用程序级别创建命令并将其通过 viewModels 发送到需要绑定(bind)到的位置?在其中,我必须搜索作为 View 的用户控件,然后搜索其中的 avalonDock 控件,并在应用程序级别使用它,这很容易出错。不知怎的,它看起来很脏......

谢谢!

最佳答案

您可以引入接口(interface)IView,以便ViewModel 可以调用View 上的方法。这样 ViewModel 就不需要知 Prop 体的 View 类,仍然可以进行单元测试。

WPF Application Framework (WAF) 的示例应用程序展示了这是如何实现的。 .

关于c# - WPF:从 viewModel 调用 View 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6393649/

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