【问题标题】:Issue with WPF FocusWPF 焦点问题
【发布时间】:2009-05-06 16:32:50
【问题描述】:

我有处理我的控件的 LostFocus 事件的代码。它验证该值,并且在某些情况下将启用后续控件。例如,可能有一个允许用户选择国家/地区的 ComboBox。随后的 ComboBox 允许用户选择一个状态。如果当前选择的国家不是美国,则禁用状态组合框。如果用户选择“USA”,然后在组合框中跳出选项卡,LostFocus 代码将启用状态 ComboBox。但是,State ComboBox 没有获得焦点,而是焦点转到 State ComboBox 后面的控件。

我尝试使用 PreviewLostKeyboardFocus 来处理事件,但没有成功。对于想办法破解 WPF 来完成这项工作,我有点不知所措。有什么建议吗?

【问题讨论】:

    标签: c# wpf focus


    【解决方案1】:

    尝试验证数据何时更改,而不是 UI。您可以添加从绑定更新属性时将触发的验证规则。然后,您可以使用样式触发器来激活相关控件。 Check this article 应该会有所帮助。

    【讨论】:

    • 你能编辑这个答案吗?链接失效了。
    【解决方案2】:

    我猜正在发生的事情是它确定了在 LostFocus 事件触发之前要切换到的控件,从而跳过了 State 组合框,因为它被禁用了。这是how focus works in WPF 的信息。您要做的是在您的处理程序中,确定它是否应该接下来进入 State 组合框,并通过 FocusManager 类以编程方式聚焦该元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多