我有下面的场景,我希望找到一个解决方案,我有一个定制的Window类,我创建了一个事件,如下所示(为了简洁起见,我已经删除了一些代码)
public class AeroWindow : Window
{
public delegate void SystemMenuEventHandler(object sender);
public event SystemMenuEventHandler Exit;
...
public override void OnApplyTemplate()
{
...
var exitButton = this.GetTemplateChild("SM_ExitButton") as Button;
if (exitButton != null)
{
exitButton.Click += (sender, args) => { this.OnExit(); };
}
}
protected virtual void OnExit()
{
if (this.Exit != null)
{
this.Exit(this);
}
}
}我在Calibutn.Micro中使用MVVM,我有一个ShellViewModel和ShellView ( ShellView继承自AeroWindow)。
我想知道的是:
Exit的事件,ShellViewModel可以订阅该事件并将其泡到已加载的视图,或者加载的视图应该订阅窗口事件)我知道这是许多问题,但它们都与同一件事有关,我希望有人能给出答案。
发布于 2015-10-07 13:31:50
让我试着回答你们的每一个问题
我应该如何正确地创建自定义事件,上面的正确吗?
然后如何绑定到视图模型中所说的“事件”
可以使用相同的事件方法将事件从一个视图模型泡到另一个视图模型(例如,我有最初加载LoginViewMode (UserControl)的ShellViewModel,然后加载MainViewModel (UserControl),如果窗口上有一个名为Exit的事件,ShellViewModel可以订阅该事件并将其泡到加载的视图中,或者加载的视图应该订阅窗口事件)。
https://stackoverflow.com/questions/32991511
复制相似问题