Текстовое поле WPF, которое только обновляет привязку, когда входят, нажимается

При необходимости в строке подключения Вы не пишете модульный тест (предполагающий использование строки подключения для движения к базе данных). Модульные тесты, как предполагается, не взаимодействуют с внешней средой. Вы захотите выполнить всех их после каждой регистрации, таким образом, они лучше будут работать со скоростью света.

Для модульного теста, Вы захотите изолировать свой код от Вашей базы данных. Измените свои тесты (и код, который Вы тестируете при необходимости) так, чтобы Вы не должны были переходить к базе данных для тестирования их.

9
задан Kamiikoneko 17 September 2009 в 14:07
поделиться

2 ответа

В выражении привязки задайте для UpdateSourceTrigger значение Explicit.

Text="{Binding ..., UpdateSourceTrigger=Explicit}"

Затем, при обработке события EnterPressed, вызовите UpdateSource для выражения привязки, это перенесет значение из текстового поля в фактическое связанное свойство.

BindingExpression exp = textBox.GetBindingExpression(TextBox.TextProperty);
exp.UpdateSource();
11
ответ дан 4 December 2019 в 10:05
поделиться

Если вы используете MVVM, вы можете использовать комбинацию подхода decastelijau вместе с настраиваемым присоединенным свойством, которое вызывает UpdateSource в текстовом поле при PreviewKeyUp.

public static readonly DependencyProperty UpdateSourceOnKey = DependencyProperty.RegisterAttached(
  "UpdateSourceOnKey",
  typeof(Key),
  typeof(TextBox),
  new FrameworkPropertyMetadata(false)
);
public static void SetUpdateSourceOnKey(UIElement element, Key value)
{

  //TODO: wire up specified key down event handler here
  element.SetValue(UpdateSourceOnKey, value);

}
public static Boolean GetUpdateSourceOnKey(UIElement element)
{
  return (Key)element.GetValue(UpdateSourceOnKey);
}

Затем вы можете:

<TextBox myprops:UpdaterProps.UpdateSourceOnKey="Enter" ... />
3
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: