无理由再次触发Button_click事件(涉及条形码阅读器)

时间:2015-01-26 17:15:08

标签: c# wpf mvvm

我在点击后面代码中的按钮时显示向导。

private void Button_Click(object sender, RoutedEventArgs e)
{
     Wizard myWizard = new Wizard();
     myWizard.ShowDialog();    
     if (myWizard.DialogResult != true)   
     {
         return;
     }
}

向导窗口作为命令

中的参数传递
void Switch2NextPage(object CallerWindow)
{
    WizardWindow = (System.Windows.Window)CallerWindow;
}     

在向导的ViewModel中,如果在文本字段中输入了特定文本,我试图关闭对话框。

public string OrderNr
{
    get
    {
        return _OrderNr;
    }
    set
    {
        _OrderNr = value;
        if (Orders.FirstOrDefault((order) => order.OrderNr == value) != null)
        {
            myNewOrder = Orders.FirstOrDefault((order) => order.OrderNr == value);
            WizardWindow.DialogResult = true;
            WizardWindow.Close();
        }
        myNewOrder.OrderNr = value;
        RaisePropertyChanged("OrderNr");
    }
}

对话框关闭,不知何故再次触发按钮的点击事件。

Callstack只显示“外部代码”和clickhandler。

我不知道如何处理这个问题。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

所涉及的条形码阅读器不仅发送了代码编号,还发送了另一个CrLf(输入密钥)。

关闭向导后,再次触发了聚焦控制(启动向导)。

感谢@JeffRSon和@dymanoid