Wpf 失焦事件中的验证

Wpf 失焦事件中的验证,wpf,vb.net,Wpf,Vb.net,我们有一个wpf页面,上面有一个菜单项,包括选择、保存、清除和退出项。在菜单下面,我们有一个文本框,它接受供应商代码。在失去焦点的文本框中,我们必须验证供应商代码是否正确,同时,如果用户单击退出菜单项,则不应进行此验证。这可以通过检查windows应用程序中的选项卡索引轻松实现,但在WPF页面中我们不知道如何实现。下面的代码是在windows应用程序中完成的。我们在WPF页面中需要相同的功能 我们需要c语言的代码# Private Sub txtSupp_Leave(ByVal sender作为

我们有一个wpf页面,上面有一个菜单项,包括选择、保存、清除和退出项。在菜单下面,我们有一个文本框,它接受供应商代码。在失去焦点的文本框中,我们必须验证供应商代码是否正确,同时,如果用户单击退出菜单项,则不应进行此验证。这可以通过检查windows应用程序中的选项卡索引轻松实现,但在WPF页面中我们不知道如何实现。下面的代码是在windows应用程序中完成的。我们在WPF页面中需要相同的功能

我们需要c语言的代码#

Private Sub txtSupp_Leave(ByVal sender作为对象,ByVal e作为System.EventArgs)处理txtSupp.Leave
如果Me.ActiveControl为Nothing,则退出Sub
如果Me.ActiveControl.TabIndex

对不起,我忘了让你挂了。。希望您能及时获得有用的信息,它可以满足您的需要,或者至少为您指明正确的方向。

感谢您的回复,但在wpf页面中,您的语法将无法正常工作。仅在windows应用程序中有效。抱歉,已将我的答案更新为工作wpf答案
Private Sub txtSupp_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSupp.Leave
  If Me.ActiveControl Is Nothing Then Exit Sub
  If Me.ActiveControl.TabIndex <= txtSupp.TabIndex And _
  Me.ActiveControl.Parent.TabIndex <= txtSupp.Parent.TabIndex Then Exit Sub
  Dim lsErrmsg As String
  cowSIMaintain.Validate_Supp(Me, lsErrmsg)
End Sub
    private void txtSupp_LostFocus(object sender, RoutedEventArgs e)
    {
        var focusedControl = Keyboard.FocusedElement;
        if (focusedControl.GetType() == typeof(Button))
        {
            var but = focusedControl as Button;
            if (but == null)
            {
                return;
            }
            if (but.Name == "ImTheExitButton")
            {
                return;
            }
        }

        string lsErrmsg = null;
        cowSIMaintain.Validate_Supp(this, lsErrmsg);
    }