为什么 UpdateSourceTrigger=Propertychanged 在 IntegerUpdown 中不能正常工作?

Why the UpdateSourceTrigger=Propertychanged dose not work correctly in IntegerUpdown?

我的问题是基于我刚才发布的

我有两个WPF IntegerUpdown控件,一个代表最大数,一个代表最小数,第一个应该大于第二个,第二个应该小于第一个。

@D M 在第一个问题中给出的解决方案解决了我的问题

    <wpfToolkit:IntegerUpDown x:Name="minimumatt" 
                          Value="0" 
                          Minimum="0" />
                                    
<wpfToolkit:IntegerUpDown x:Name="maximumatt" 
                          Value="0" 
                          Minimum="0" 
                          Maximum="{Binding ElementName=minimumatt, 
                                            Path=Value
                                            UpdateSourceTrigger=PropertyChanged}" />

但是当我在控件外点击的时候只能是一个,应该实现的场景是当用户选择最小IntegerUpdown控件中的一个数大于最大已经存在的数时, number 应设置为 0 或当用户此时鼠标失去焦点时设置为默认值。

我已经测试过这个解决方案:

 Maximum="{Binding ElementName=minimumatt, 
                                                Path=Value
                                                UpdateSourceTrigger=LostFocus}"

但是事件没有触发。

遇到这种情况我该怎么办?

例如,在这种情况下,当用户将 18 放入 min 时,应该在失去焦点事件中更改该值,现在有效的是用户必须在该控件外部单击才能获得默认值最小值 IntegerUpdown

更新:

我发现了一个事件 (Mouseleave_event) 可用于实时更新值(无需单击其他控件)但我不知道如何将此事件与 Propertychanged 一起使用,我该怎么做?

I found an event (Mouseleave_event) that can be used to update the value in real time ( without clicking on other controls ) but I did not have any idea how can I use this event with Propertychanged , how can I do this?

UpdateSourceTrigger 是绑定的 属性,它控制何时更新源 属性,在本例中为 Value。它不会为您引发任何 MouseLeave 事件。

如果你想处理一个事件,你应该为它连接一个事件处理程序并像往常一样在你的代码隐藏中实现处理程序class:

<wpfToolkit:IntegerUpDown x:Name="maximumatt" 
                          Value="0" 
                          Minimum="0" 
                          Maximum="{Binding Value, ElementName=minimumatt}"
                          MouseLeave="maximumatt_MouseLeave"/>