0

我的问题是基于如何对 WPF IntegerUpDown 工具包设置限制?我已经发布了一段时间。

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

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

    <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}"

但是该事件没有触发。

在这种情况下我能做什么?

例如,在这种情况下,当用户18输入 min 时,应该在失去焦点事件中更改该值,现在起作用的是用户必须在此控件之外单击以获取默认值 in minimumIntegerUpdown

在此处输入图像描述

更新

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

4

1 回答 1

0

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

UpdateSourceTrigger是绑定的一个属性,它控制源属性(Value在这种情况下)何时更新。它不会MouseLeave为您引发任何事件。

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

<wpfToolkit:IntegerUpDown x:Name="maximumatt" 
                          Value="0" 
                          Minimum="0" 
                          Maximum="{Binding Value, ElementName=minimumatt}"
                          MouseLeave="maximumatt_MouseLeave"/>
于 2021-04-06T14:11:25.017 回答