Проблема с DialogHost

Здавствуйте, нужна булевая функция,в которой создается DialogHost c кнопками "OK" и "cancel" на нем,а также с возможностью узнать какая кнопка нажата. Программа ждет нажатия какой-то из кнопок и возвращает true если "OK" и false если "cancel" соответственно.

public bool Dialog()
        {
            DialogHost Host = new DialogHost { VerticalAlignment = VerticalAlignment.Stretch, IsManipulationEnabled = true };
            Grid DialogGrid = new Grid { Width = 450, Height = 120 };
           {
                Button OK = new Button
                {
                    Content = "OK",
                    VerticalAlignment = VerticalAlignment.Bottom,
                    HorizontalAlignment = HorizontalAlignment.Right,
                    Margin = new Thickness(0, 0, 10, 10),
                    Focusable = false,
                };
                OK.SetResourceReference(Button.StyleProperty, "MaterialDesignFlatButton");
                OK.SetValue(Grid.ColumnSpanProperty, 3);
                OK.Click += OK_Click;
                void OK_Click(object sender, RoutedEventArgs e)\\При срабатывании обработчика функция Dialog() должна вернуть true
                {
                    Host.IsOpen = false;
                    grid.Children.Remove(Host);
                }
                DialogGrid.Children.Add(OK);
            }
            { 
                Button Cancel = new Button
                {
                    Content = "Cancel",
                    VerticalAlignment = VerticalAlignment.Bottom,
                    HorizontalAlignment = HorizontalAlignment.Right,
                    Margin = new Thickness(0, 0, 10, 10),
                    Focusable = false,
                };
                Cancel.SetResourceReference(Button.StyleProperty, "MaterialDesignFlatButton");
                Cancel.SetValue(Grid.ColumnSpanProperty, 3);
                Cancel.Click += Cancel_Click;
                void Cancel_Click(object sender, RoutedEventArgs e)
                {
                    Host.IsOpen = false;
                    grid.Children.Remove(Host);
                }
                DialogGrid.Children.Add(Cancel);
            }
            Host.SetResourceReference(StyleProperty, "MaterialDesignEmbeddedDialogHost");
            Host.SetValue(Grid.ColumnSpanProperty, 3);
            Host.SetValue(Grid.RowSpanProperty, 2);
            Host.SetValue(Panel.ZIndexProperty, 2000);
            grid.Children.Add(Host);
            Host.ShowDialog(DialogGrid);
        }

И вот-так долже быть вызов

if(Dialog()==true){
...
}

Ответы (0 шт):