gpt4 book ai didi

wpf - 带有 WPF ViewModel 导航操作的 MVVM Light

转载 作者:行者123 更新时间:2023-12-03 10:44:35 25 4
gpt4 key购买 nike

再会!

我在 WPF 应用程序上使用 MVVM Light。我有一个页面,我正在使用用户控件为 View 提供各自的 ViewModel。我正在使用 ViewModelLocator 将它们连接起来。我已经弄清楚了如何通过将 ContentControl 的 Content 绑定(bind)到设置的可观察属性来进行导航。这是 XAML 的片段:

<ContentControl Content="{Binding CurrentViewModel}" Grid.Row="1" />

MainViewModel 创建对我的两个不同 ViewModel 的引用:
private ViewModelBase _currentViewModel;
private readonly static LogInViewModel _loginViewModel = new LogInViewModel();
private readonly static ClockEventViewModel _clockEventViewModel = new ClockEventViewModel();

在我的构造函数中,我从其他 ViewModel 注册了一些操作:
_loginViewModel.AllowClockEvent += ExecuteClockEventViewCommand;
_clockEventViewModel.ReturnToLogin += ExecuteLoginViewCommand;

它们在每个 ViewModel 中实现,如下所示:
public Action ReturnToLogin = delegate { };

最后在这些方法中,我将 CurrentViewModel 设置为不同的 ViewModel。例如:
CurrentViewModel = _clockEventViewModel;

这很好用,但我不能做的是,在另一个 View 模型成为当前 View 模型时,我想捕捉它并做一些初步工作。有点像 NavigateTo 事件。我确信可能有一种简单的方法,但是我查看了 ViewModelBase 并且我没有看到任何方法可以覆盖给我这种能力。

谁已经这样做了?如果有比我采用的方法更好的方法,请告诉我。

最佳答案

我最终要做的是通过暴露的 _clockEventViewModel 调用我需要的方法。这实际上比我想象的要容易。

关于wpf - 带有 WPF ViewModel 导航操作的 MVVM Light,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661932/

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