2010-10-11 63 views
1

我有一個帶有七個按鈕的窗口;我將它用作我正在處理的簡單遊戲中的菜單,但我將其作爲對話框顯示。我怎麼知道用戶按下了哪個按鈕,因爲WPF中的DialogResult只提供true,false和null?如何處理WPF中多個按鈕的對話框?

回答

0

定義您自己的枚舉並提供靜態方法來顯示返回枚舉的窗口。

下面的代碼做了同樣的事情,它是一個窗口的一部分,允許用戶查看其更改並接受或取消。因爲我只需要true和false,所以我使用了一個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(); 
     } 
2

如果您以這種方式製作自定義窗口,則不必擔心DialogResult。

您可以在窗口內的某個屬性中跟蹤此內容,並在對話框關閉後只讀屬性。

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

var choice = window.CustomPropertyContainingChoice; 
相關問題