2014-01-17 115 views
3

我正在使用優秀的MUI庫https://mui.codeplex.com/來創建我的WPF應用程序。從UserControl關閉控制窗口

自定義窗口在MUI窗口中以用戶控件的形式實現。要打開窗口,請創建一個Modern Window的實例,並將用戶控件作爲內容傳遞。到目前爲止,這工作正常,但我遇到的問題是試圖從用戶控件中控制父窗口。

當我說'試圖控制'我的意思是驗證窗口的關閉行爲。

用戶控件是我做所有我的數據編輯等,我想防止父窗口關閉,如果用戶正在編輯數據 - 即。 「關閉是的,沒有取消」的東西。

我可以成功關閉用戶控件的父窗口,但我看不到如何做相反的事情 - 即停止關閉窗口。

有人可以幫忙嗎?

感謝

回答

4

我不知道很多關於梅,但我認爲這樣的事情應該做的伎倆

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 

     Loaded += UserControl1_Loaded; 
    } 

    void UserControl1_Loaded(object sender, RoutedEventArgs e) 
    { 
     var window = Window.GetWindow(this); 
     window.Closing += window_Closing; 
    } 

    void window_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
    { 
     if (!Valid()) // You can show a message box or whatever logic you want 
      e.Cancel = true; 
    } 
} 
+0

(顯然爲時過早回答我的問題,但在這裏不用... )在UserControl Loaded事件中,並將一個事件附加到父窗口的Closing事件中 Window parentWindow = Window.GetWindow(this); parentWindow.Closing + = parentWindow_Closing; –

+0

@MuckersMucker什麼?如果解決了你的問題,你會介意接受我的答案嗎? – Dtex

+0

謝謝,這正是我所做的,但回答我自己的問題還爲時過早! –