[英]Calling method of UserControl from ViewModel with Caliburn.Micro
[英]Caliburn.Micro Calling a viewmodel from UserControl
我有一個AppViewModel,它在窗口頂部包含一個菜單。 在AppViewModel構造上,我正在顯示一個UserControl。 在此UserControl中,我有一個按鈕,它調用另一個視圖模型(UserControl)。
這個想法是保留菜單並處理窗口的內容。 因此,我有1個窗口和2個UserControls。 這是對的?
如何從UserControl內部的按鈕調用另一個ViewModel? 或者,我必須從窗口調用它? 但是按鈕在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());
}
父母是指將為您導航的售票員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.