Caliburn.Micro 从 UserControl 调用视图模型
Caliburn.Micro Calling a viewmodel from UserControl
我有一个 AppViewModel,它包含 Window 顶部的菜单。在 AppViewModel 结构上,我展示了一个 UserControl。在这个 UserControl 中,我有一个按钮,它调用另一个视图模型 (UserControl)。
想法是保留菜单并处理 window 的内容。所以,我有 1 个 window 和 2 个用户控件。这是正确的吗?
如何从 UserControl 中的按钮调用另一个 ViewModel?或者,我必须从 Window 调用它?但是按钮在 UserControl 里面!
我的代码:
class AppViewModel : Conductor<object>
{
private bool _MenuIsVisible;
public bool MenuIsVisible
{
get { return _MenuIsVisible; }
set
{
if (_MenuIsVisible != value)
{
_MenuIsVisible = value;
NotifyOfPropertyChange(() => MenuIsVisible);
}
}
}
public AppViewModel()
{
MenuIsVisible = true;
_ShowTutorial();
}
private void _ShowTutorial()
{
ActivateItem(new FirstViewModel());
}
}
public class FirstViewModel : Screen
{
protected override void OnActivate()
{
base.OnActivate();
}
}
在 FirstViewModel 上我有一个按钮需要调用 SecondViewModel。
要从第一个 ViewModel 导航到第二个 ViewModel,您可以在第一个 ViewModel 中使用这样的方法:
public void NavigateToSecond()
{
var conductor = this.Parent as IConductor;
conductor.ActivateItem(new SecondViewModel());
}
家长指的是负责为您导航的售票员。
我有一个 AppViewModel,它包含 Window 顶部的菜单。在 AppViewModel 结构上,我展示了一个 UserControl。在这个 UserControl 中,我有一个按钮,它调用另一个视图模型 (UserControl)。
想法是保留菜单并处理 window 的内容。所以,我有 1 个 window 和 2 个用户控件。这是正确的吗?
如何从 UserControl 中的按钮调用另一个 ViewModel?或者,我必须从 Window 调用它?但是按钮在 UserControl 里面!
我的代码:
class AppViewModel : Conductor<object>
{
private bool _MenuIsVisible;
public bool MenuIsVisible
{
get { return _MenuIsVisible; }
set
{
if (_MenuIsVisible != value)
{
_MenuIsVisible = value;
NotifyOfPropertyChange(() => MenuIsVisible);
}
}
}
public AppViewModel()
{
MenuIsVisible = true;
_ShowTutorial();
}
private void _ShowTutorial()
{
ActivateItem(new FirstViewModel());
}
}
public class FirstViewModel : Screen
{
protected override void OnActivate()
{
base.OnActivate();
}
}
在 FirstViewModel 上我有一个按钮需要调用 SecondViewModel。
要从第一个 ViewModel 导航到第二个 ViewModel,您可以在第一个 ViewModel 中使用这样的方法:
public void NavigateToSecond()
{
var conductor = this.Parent as IConductor;
conductor.ActivateItem(new SecondViewModel());
}
家长指的是负责为您导航的售票员。