2012-09-08 23 views
1

我創建了一個定製的XAML UserControl類,並將其傳遞給ShowDialog方法。我希望能夠通過在我的UserControl中生成的其他事件觸發單擊對話框上的確定按鈕 - 例如雙擊一個ListItem。我有處理雙擊的代碼很好(甚至綁定到MouseDown並檢查點擊數),但我不知道如何觸發一個新的事件到父對話框來關閉它。在IWebMatrixHost ShowDialog方法上觸發對話框按鈕

// Bound to TextBlock, part of a ListBox on a UserControl 
private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    if (e.ClickCount == 2) 
    { 
     // trigger dialog to close with OK button 
    } 
} 

回答

2

使用戶控件實現IDialogContent。然後你可以直接調用你實現的CloseDialog事件,這會觸發對話框關閉。

您需要決定在後續代碼中如何處理該問題,方法是在用戶控件/視圖模型或某些其他數據上設置適合您的特定擴展的某種狀態。

// Bound to TextBlock, part of a ListBox on a UserControl 
    private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     if (e.ClickCount == 2) 
     { 
      CloseDialog(this, EventArgs.Empty); 
     } 
    } 
相關問題