【发布时间】:2021-04-06 10:31:19
【问题描述】:
我的问题是基于我不久前发布的How to set a restriction to WPF IntegerUpDown toolkit?。
我有两个 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控件大于已经存在的最大数字时,应该设置该数字到0 或者当用户此时鼠标失去焦点时默认。
我已经测试过这个解决方案:
Maximum="{Binding ElementName=minimumatt,
Path=Value
UpdateSourceTrigger=LostFocus}"
但是事件没有触发。
在这种情况下我该怎么办?
例如,在这种情况下,当用户在 min 中输入 18 时,应该在失去焦点事件中更改该值,现在起作用的是用户必须在此控件之外单击才能获得 minimum @ 中的默认值987654330@
更新:
我发现了一个事件 (Mouseleave_event) 可用于实时更新值(无需单击其他控件),但我不知道如何将此事件与 Propertychanged 一起使用,我该怎么做?
【问题讨论】:
-
您希望被解雇的“事件”是什么?当控件失去焦点并且焦点不会丢失时,应该重置该值,直到您在控件外部单击。
-
我已经更新了我的问题,我想申请的事件是
MouseLeave_event -
那么你需要为那个事件连接一个事件处理程序。
标签: wpf xaml numericupdown updatesourcetrigger