首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf toolkit integer updown不保留lostfocus上的值

wpf toolkit integer updown不保留lostfocus上的值
EN

Stack Overflow用户
提问于 2011-11-11 02:21:25
回答 2查看 3.5K关注 0票数 1

我有一个整数向上向下的wpf工具包控件。我能够使用箭头键更改这些值,并且能够显式地键入它。但是在改变这个值之后,如果我把焦点移开,这个值就变成了零。

任何帮助都将不胜感激。谢谢!

代码语言:javascript
复制
 <wpftlkit:IntegerUpDown Grid.Column="1" Margin="6" VerticalAlignment="Center" Increment="1" Maximum="7"
                         Value="{Binding ValueH,   Mode=TwoWay, UpdateSourceTrigger=LostFocus}"                              Style="{StaticResource StyleErrorTemplate}"
                        IsEnabled="{Binding IsEnabled}" Visibility="{Binding Visibility}" />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-11 02:28:32

我怀疑这个问题是一个具有约束力的问题。实际值不会被更新,直到你失去焦点(由于你的UpdateSourceTrigger),在这一点上,一个被破坏的绑定或一个强制值回到零的属性绑定就会导致这种行为。

票数 0
EN

Stack Overflow用户

发布于 2013-02-20 21:24:20

这就是工具包的工作方式。要在用户键入的值超出最小-最大界限时将值更改为最大值或最小值,您应该下载WPF Toolkit源代码(http://wpftoolkit.codeplex.com/SourceControl/changeset/view/98195)并更改文件夹Xceed.Wpf.Toolkit/NumericUpDown/NumericUpDown中的文件CommonNumericUpdown.cs,如下所示。注意抛出异常之前的代码行,它们是被添加的。

代码语言:javascript
复制
private void ValidateDefaultMinMax( T? value )
{
  // DefaultValue is always accepted.
  if( object.Equals( value, DefaultValue ) )
    return;

  if (IsLowerThan(value, Minimum))
  {
      Value = Minimum;
      throw new ArgumentOutOfRangeException("Minimum", String.Format("Value must be greater than MinValue of {0}", Minimum));
  }
  else if (IsGreaterThan(value, Maximum))
  {
      Value = Maximum;
      throw new ArgumentOutOfRangeException("Maximum", String.Format("Value must be less than MaxValue of {0}", Maximum));
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8084364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档