WPF Close Window from ViewModel

声明一个 ICloseWindow 接口

public interface ICloseWindow
{
    Action Close { get; set; }
}

在 MainWindowViewModel 继承实现 ICloseWindow

public class MainWindowViewModel : ViewModelBase, ICloseWindow
    {
        public Action Close { get; set; }

        public DelegateCommand LogOutCommand { get; }
        public void LogOut()
        {
             Close?.Invoke();
        }
    }

在 MainWindow Load事件绑定

   public partial class MainWindowView : Window
    {
     
        public MainWindowView()
        {
            InitializeComponent();
            Loaded += BindingEvent;
        }

        public void BindingEvent(object sender,RoutedEventArgs e)
        {
            if (DataContext is ICloseWindow vm)
            {
                vm.Close += () =>
                {
                    this.Hide();
                };
            }
        }
    }
技术交流Q群: 1012481075 群内有各种流行书籍资料
原文链接:

发表评论

您的电子邮箱地址不会被公开。

WeChat
WeChat
QQ
QQ
返回顶部