1

我创建了一个传递给ShowDialog方法的自定义 XAML UserControl 类。我希望能够通过在我的 UserControl 中生成的其他事件触发单击对话框上的 OK 按钮 - 例如双击 ListItem。我有处理双击的代码(甚至绑定到 MouseDown 并检查了点击次数),但我不知道如何触发父对话框的新事件以关闭它。

// 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
    }
}
4

1 回答 1

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);
        }
    }
于 2012-09-10T21:21:43.003 回答