C# WPF焦点问题

C# WPF焦点问题,c#,wpf,focus,C#,Wpf,Focus,我有处理控件的LostFocus事件的代码。它验证该值,在某些情况下将启用后续控件。例如,可能有一个允许用户选择国家的组合框。随后的组合框允许用户选择一个状态。如果当前选定的国家/地区不是美国,则状态组合框将被禁用。如果用户选择“USA”,然后从组合框中弹出选项卡,则LostFocus代码将启用状态组合框。但是,状态组合框不获取焦点,而是将焦点转移到状态组合框后面的控件 我尝试使用PreviewLostKeyboardFocus来处理事件,但没有成功。我有点不知所措,不知如何破解WPF来完成这项

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


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

我猜发生的是,它在LostFocus事件触发之前确定了要制表的控件,因此跳过了状态组合框,因为它已被禁用。这是给你的信息。您要做的是在处理程序中,确定它是否应该下一步进入状态组合框,并通过类以编程方式聚焦该元素。

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

你能编辑一下这个答案吗?链接已断开。