1

整数のアップダウンwpfツールキットコントロールがあります。矢印キーを使用して値を変更し、明示的に入力することができます。しかし、値を変更した後、フォーカスを遠ざけると、値はゼロになります。

どんな助けでもいただければ幸いです。ありがとう!

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

2 に答える 2

0

この問題は拘束力のある問題だと思います。実際の値は、(UpdateSourceTrigger が原因で) フォーカスを失うまで更新されません。その時点で、値を強制的にゼロに戻すプロパティへのバインディングまたはバインディングが壊れていると、この動作が発生します。

于 2011-11-10T18:28:31.580 に答える
0

これが Toolkit の仕組みです。ユーザーが Min-Max 境界外の値を入力したときに値を最大値または最小値に変更するには、WPF Toolkit ソース ( http://wpftoolkit.codeplex.com/SourceControl/changeset/view/98195 ) をダウンロードしてファイルを変更する必要があります。フォルダXceed.Wpf.Toolkit/NumericUpDown/NumericUpDown内の CommonNumericUpdown.csは以下のようになります。例外がスローされる前の行に注意してください。それらは追加されます。

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));
  }
}
于 2013-02-20T13:24:19.853 に答える