2014-01-17 2 views
3

Я использую отличную библиотеку MUI https://mui.codeplex.com/ для создания моего приложения WPF.Управление окном рядом с UserControl

Пользовательские окна реализованы как User Control в окне MUI. Чтобы открыть окно, создайте экземпляр «Современного окна», передав элемент управления пользователями как содержимое. Это пока работает нормально, но проблема, с которой я столкнулась, заключается в попытке управлять родительским окном из пользовательского элемента управления.

Когда я говорю «пытаться контролировать», я имею в виду проверку правильности поведения окна.

Пользовательский элемент управления - это то, где я делаю все мое редактирование данных и т. Д., И я хочу, чтобы окно родительского окна не закрывалось, если пользователь редактирует данные - т.е. «Закрыть Да, не отменять».

Я могу успешно закрыть родительское окно из пользовательского элемента управления, но я не вижу, как сделать обратное - т. Е. Закрытие окна.

Может кто-нибудь помочь?

Благодаря

ответ

4

Я не знаю много о MUI, но я думаю, что-то вроде этого следует сделать трюк

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 и присоединении события к событию закрытия родительского окна Window parentWindow = Window.GetWindow (this); parentWindow.Closing + = parentWindow_Closing; –

+0

@MuckersMucker Что? Не возражаете ли вы принять мой ответ, если он решит вашу проблему? – Dtex

+0

Спасибо, это именно то, что я сделал, но было слишком рано отвечать на мой вопрос! –

Смежные вопросы