Целочисленное обновление целого набора инструментов wpf не сохраняет значения в lostfocus - PullRequest
1 голос
/ 10 ноября 2011

У меня есть целочисленное обновление инструментария 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}" />

Ответы [ 2 ]

0 голосов
/ 20 февраля 2013

Так работает инструментарий.Чтобы изменить значение на максимальное или минимальное, когда пользователь вводит значение, выходящее за пределы минимального или максимального значения, необходимо загрузить источники WPF Toolkit (http://wpftoolkit.codeplex.com/SourceControl/changeset/view/98195) и изменить файл CommonNumericUpdown.cs в папке Xceed.Wpf.Инструментарий / NumericUpDown / NumericUpDown , как указано ниже, обратите внимание на строки перед выбросом исключений, они добавляются.

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 голосов
/ 10 ноября 2011

Я подозреваю, что проблема является обязательной. Фактическое значение не будет обновлено до тех пор, пока вы не потеряете фокус (из-за вашего UpdateSourceTrigger), и в этом случае нарушенная привязка или привязка к свойству, которое возвращает значение к нулю, приведет к такому поведению.

...