UserControl LostFocus和UpdateSourceTrigger

时间:2019-05-31 19:00:06

标签: wpf wpf-controls .net-4.5

我有一个包含三个按钮(ButtonA,ButtonB和ButtonC)的UserControl。这三个按钮更改了UserControl的Value依赖项属性。

当我尝试将此控件与UpdateSourceTrigger = LostFocus绑定一起使用时,它的行为不正确:

<custom:MyUserControl Value="{Binding SomeProp, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" />

使用LostFocus作为UpdateSourceTrigger时,其想法是仅在控件失去焦点时才更新SomeProp的值。问题是,当用户单击ButtonA,然后在触发UserControl.GotFocus事件后立即单击ButtonB,UserControl.LostFocus和紧接着。依次更新SomeProp值。

那么,如何防止这种情况发生?当与MyUserControl的子级ButtonA,ButtonB和ButtonC进行交互时,每次从一个按钮切换到另一个按钮时,都会触发UserControl.LostFocus,而这不是我想要的。我需要仅在控件真正失去焦点时才触发UserControl.LostFocus,而不是在其子控件改变焦点时才触发。

有什么想法吗?

0 个答案:

没有答案