如何在WPF中处理具有多个按钮的对话框?
我有一个有七个按钮的窗口;我在一个简单的游戏中使用它作为菜单,但我将它显示为一个对话框。由于DialogResult in WPF仅提供true、false和null,我如何知道用户按下了哪个按钮?定义您自己的枚举,并提供一个静态方法来显示返回枚举的窗口 下面的代码做了同样的事情,它是一个窗口的一部分,允许用户查看他们的更改并接受或取消。因为我只需要true和false,所以我使用了bool,但是更改为enum是很简单的如何在WPF中处理具有多个按钮的对话框?,wpf,button,dialog,Wpf,Button,Dialog,我有一个有七个按钮的窗口;我在一个简单的游戏中使用它作为菜单,但我将它显示为一个对话框。由于DialogResult in WPF仅提供true、false和null,我如何知道用户按下了哪个按钮?定义您自己的枚举,并提供一个静态方法来显示返回枚举的窗口 下面的代码做了同样的事情,它是一个窗口的一部分,允许用户查看他们的更改并接受或取消。因为我只需要true和false,所以我使用了bool,但是更改为enum是很简单的 public static bool DisplayChanges(Lis
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();
}
公共静态bool显示更改(列表消息)
{
var retlist=LstMessages.Where((非规范化消息NM)=>{return NM.Status!=NormalizedMessageStatus.NoChange;});
ReviewChanges RC=新的ReviewChanges();
RC.Messages=retlist.ToList();
RC.ShowDialog();
返回RC.Result;
}
private void cmdCancle\u单击(对象发送方,路由目标)
{
结果=假;
隐藏();
}
私有void cmdOK_单击(对象发送方,路由目标)
{
结果=真;
隐藏();
}
如果您以这种方式创建自定义窗口,则不必担心DialogResult
您可以在窗口中的属性中跟踪该属性,并在对话框关闭后读取该属性
MyDialog window = new MyDialog();
if (window.ShowDialog() == false)
{
// user closed the window...
}
var choice = window.CustomPropertyContainingChoice;