带有MVVM的Avalondock关闭文档

问题描述 投票:0回答:1

我们有一个有效的avalondock实现,它监听即将发生的事件,如果未保存文档,则用户有机会保存它,等等。效果很好。

现在,用户希望从“文件”菜单中选择关闭按钮,它应该像内置的关闭按钮一样工作(文档名称旁边的小X)。

只有我发现对MVVM不太友好。

我将CloseCommand绑定到可停靠的项目ViewModel之类的>>

<Setter Property="CloseCommand" Value="{ Binding Model.CloseCommand, Mode=TwoWay}" />

然后从ViewModel我有一个方法

public ICommand CloseCommand { get; set; }

public void Close()
{
    if (CloseCommand.CanExecute(this))
    {
        CloseCommand.Execute(this);
    }
}

这有效,并且保留了按下内置关闭按钮后的所有行为。但我认为这是一个丑陋的骇客。我依赖于View数据将CloseCommand绑定到viewmodel等。必须有更多的MVVM方式来触发关闭吗?

我们有一个有效的avalondock实现,可以监听即将发生的事件,如果未保存文档,则用户有机会保存它,等等。效果很好。现在,用户希望从...

wpf mvvm caliburn.micro avalondock
1个回答
0
投票

我这样解决了

© www.soinside.com 2019 - 2024. All rights reserved.