我创建了一个自定义的XAML UserControl类,我将其传递给ShowDialog方法。我希望能够触发通过我的UserControl中生成的其他事件单击对话框上的“确定”按钮 - 例如双击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
}
}
答案 0 :(得分: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);
}
}