【问题标题】:WPF Textbox bindingWPF 文本框绑定
【发布时间】:2012-10-18 13:05:35
【问题描述】:

我有一个 WPF 应用程序。我正在使用 MVVM。 我有绑定到 WPF CreatePerson 视图的人模型。 在 CreatePerson 视图中,有一个文本框,我在其中将 Text 属性绑定到 Person.FirstName 现在我的默认焦点是 FirstName 文本框。 当我不做任何事情按 Tab 键时,它不会触发验证,但是当我写一些东西时,它会正确触发。

所有验证均已正确设置。

现在我希望当我按下 Tab 键时,它应该触发验证。

如果需要更多许可,请告诉我。

【问题讨论】:

  • 由于您没有更改属性,因此验证不会触发,我认为您必须附加一个行为来强制验证 - 这听起来像是一个“设计使然”的问题
  • 代码非常简单。想一个场景。你想创建一个人,所以你启动了那个屏幕。焦点设置为第一个输入值。现在您按 Tab 键,没有验证触发。我们可以很容易地在 Web 应用程序中实现这一点。
  • 如果没有您向我们展示您的尝试,我们无法想象一个场景。将代码提供给我们,以便我们查看您做错了什么并向您解释!
  • 还有一种方法可以在绑定中对 lostfocus 进行验证,有什么方法,当它获得焦点时。

标签: wpf


【解决方案1】:

当发生任何更新绑定源的尝试时,将调用验证。如果你想在 GotFocus 事件发生时触发验证,你必须以编程方式更新你的绑定,即在 GotFocus 的事件处理程序中你可以强制绑定

private void textBox1_GotFocus(object sender, RoutedEventArgs e)
{
      BindingExpression binding = BindingOperations.GetBindingExpression(textBox1, TextBox.TextProperty);
 binding.UpdateSource(); 
}

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 2012-11-24
    • 2015-10-16
    • 2011-03-29
    • 2010-12-20
    • 2018-01-24
    • 2016-07-22
    • 1970-01-01
    • 2010-11-13
    相关资源
    最近更新 更多