如何在WPF中处理多个按钮的对话框?

时间:2010-10-11 21:01:21

标签: wpf button dialog

我有一个带七个按钮的窗口;我将它用作我正在处理的简单游戏中的菜单,但我将其显示为对话框。我怎么知道用户按下了哪个按钮,因为WPF中的DialogResult只提供true,false和null?

2 个答案:

答案 0 :(得分:2)

如果您以这种方式制作自定义窗口,则无需担心DialogResult。

您可以在Window中的属性中跟踪此内容,并在关闭对话框后阅读该属性。

 MyDialog window = new MyDialog();
 if (window.ShowDialog() == false)
 {
    // user closed the window...
 }

 var choice = window.CustomPropertyContainingChoice;

答案 1 :(得分:0)

定义你自己的枚举并提供一个静态方法来显示返回你的枚举的窗口。

以下代码与窗口的一部分相同,它允许用户查看其更改并接受或取消。因为我只需要真假,所以我使用了一个bool但是改为枚举会很简单。

public static bool DisplayChanges(List<INormalizedMessage> LstMessages)
        {
            var retlist = LstMessages.Where(( INormalizedMessage NM ) => { return NM.Status != NormalizedMessageStatus.NoChange; });
            ReviewChanges RC = new ReviewChanges();
            RC.Messages = retlist.ToList();
            RC.ShowDialog();
            return RC.Result;

        }

        private void cmdCancle_Click( object sender, RoutedEventArgs e )
        {
            Result = false;
            Hide();
        }

        private void cmdOK_Click( object sender, RoutedEventArgs e )
        {
            Result = true;
            Hide();
        }