MVVM光与WPF视图模型导航动作



大家好!

我在WPF应用程序上使用MVVM Light。我有一个页面,我使用用户控件提供具有各自viewmodel的视图。我使用ViewModelLocator把那些连接起来。我已经弄清楚了如何通过将ContentControl的Content绑定到一个被设置的可观察属性来导航。下面是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();

在我的构造函数中,我从其他ViewModels注册了一些动作:

_loginViewModel.AllowClockEvent += ExecuteClockEventViewCommand;
_clockEventViewModel.ReturnToLogin += ExecuteLoginViewCommand;

它们在每个ViewModel中是这样实现的:

public Action ReturnToLogin = delegate { };

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

CurrentViewModel = _clockEventViewModel;

这工作得很好,但是我不能做的是,在另一个视图模型成为当前视图模型时,我想捕获它并做一些初始工作。有点像NavigateTo事件。我确信可能有一个简单的方法,但我看过ViewModelBase,我看到没有方法来覆盖给我这个功能。

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

我最终要做的是通过exposed _clockEventViewModel调用我需要的方法。这比我想象的要简单。

相关内容

  • 没有找到相关文章

最新更新