InteractionRequest <确认>:焦点停留在单击的按钮上</confirmation>

时间:2013-09-11 09:16:51

标签: wpf prism confirmation

有人知道如何将焦点放在Prism InteractionRequest的“取消”按钮上吗?

目前发生的情况是,如果您按下了主窗口中的按钮并触发了InteractionRequestTrigger,如果再次按Enter键,则会因为焦点停留在父窗口并且InteractionRequestTrigger触发而出现问题第二次......

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

在触发 InteractionRequestTrigger 后,应自动设置焦点确认对话框。

您可能会发现以下基于状态的导航棱镜快速入门:

通过设置正确的 ViewModel,在QuickStart中调用Raise()方法,以便在 ChatViewModel的 SendMessage()方法中显示 InteractionRequest的对话框 context 及其回调

public IInteractionRequest SendMessageRequest
{
    get { return this.sendMessageRequest; }
}

public void SendMessage()
{
    var contact = this.CurrentContact;
    this.sendMessageRequest.Raise(
        new SendMessageViewModel(contact, this),
        sendMessage =>
        {
            if (sendMessage.Result.HasValue && sendMessage.Result.Value)
            {
                this.SendingMessage = true;

                this.chatService.SendMessage(
                    contact,
                    sendMessage.Message,
                    result =>
                    {
                        this.SendingMessage = false;
                    });
            }
        });
}

此外,ChatView会检测到互动请求,PopupChildWindowAction会显示SendMessageChildWindow弹出窗口:

<prism:InteractionRequestTrigger SourceObject="{Binding SendMessageRequest}">
    <prism:PopupChildWindowAction>
        <prism:PopupChildWindowAction.ChildWindow>
            <vs:SendMessageChildWindow/>
        </prism:PopupChildWindowAction.ChildWindow>
    </prism:PopupChildWindowAction>
</prism:InteractionRequestTrigger>

我希望这会有所帮助。

答案 1 :(得分:0)

啊!我应该把我的Popup标记为可聚焦!