“private void WON_SelectionChanged”中的命令未执行

时间:2014-12-18 10:23:31

标签: c#

我正在制作一个插件应用程序,它将在C#中的第三方程序中运行。不幸的是,我无法在程序内部调试我的代码。 这是一个应用程序,用户从下拉列表中选择项目,当选择某些组合时,其他组合被排除等。 但是在其中一个下拉菜单中,当我选择一定数量的某些命令时会执行,但其他命令并非没有明显的原因(对于我来说,我是新手,也许对你来说这很明显)。

private void WON_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DesignNo.IsEnabled = true;
    MessageBox.Show("Selection Changed!!!");
    string contentStr = (WON.SelectedItem ?? string.Empty).ToString();
    //If AK89 is selected then the WONItem numbers have to change to 14 
    if (string.Equals("AK89", contentStr, StringComparison.OrdinalIgnoreCase))
    {
        MessageBox.Show("IN AK89!!!");
        this.WONitem.Items.Clear();
        WONitem.Items.Add("-1");
        WONitem.Items.Add("-2");
        WONitem.Items.Add("-3");
        WONitem.Items.Add("-4");
        WONitem.Items.Add("-5");
        WONitem.Items.Add("-6");
        WONitem.Items.Add("-7");
        WONitem.Items.Add("-8");
        WONitem.Items.Add("-9");
        WONitem.Items.Add("-10");
        WONitem.Items.Add("-11");
        WONitem.Items.Add("-12");
        WONitem.Items.Add("-13");
        WONitem.Items.Add("-14");
        WONitem.SelectedIndex = WONitem.Items.Count - 14;

    }
    // Disable the ones done.
    //
    //contentStr = (this.WON.SelectedItem ?? string.Empty).ToString();
    //MessageBox.Show("IN AK85!!!" + contentStr);
    if (string.Equals("AK85", contentStr, StringComparison.OrdinalIgnoreCase))
    {

        contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();
        MessageBox.Show("IN AK85!!!" + contentStr);
        if (string.Equals(" 100019646-2", contentStr, StringComparison.OrdinalIgnoreCase))
        {
            MessageBox.Show("IN the drawingNo 100019646-2!!!");
            DesignNo.Items.Clear();
            WONitem.Items.Clear();
            MessageBox.Show("should be cleared now!!!");
            WONitem.Items.Add("-9");
            WONitem.Items.Add("-10");
            WONitem.Items.Add("-11");
            WONitem.Items.Add("-12");
            WONitem.Items.Add("-13");
            WONitem.Items.Add("-14");
            WONitem.Items.Add("-15");
            WONitem.Items.Add("-16");
            WONitem.SelectedIndex = WONitem.Items.Count - 8;
        }
        else if (string.Equals(" 100019646-1", contentStr, StringComparison.OrdinalIgnoreCase))
        {
            //contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();
            //if (string.Equals(" 100019646-1", contentStr, StringComparison.OrdinalIgnoreCase))

                MessageBox.Show("IN the drawingNo 100019646-1!!!");
                this.WONitem.Items.Clear();
                WONitem.Items.Add("-9");
                WONitem.Items.Add("-10");
                WONitem.Items.Add("-11");
                WONitem.Items.Add("-12");
                WONitem.Items.Add("-13");
                WONitem.Items.Add("-14");
                WONitem.Items.Add("-15");
                WONitem.Items.Add("-16");
                WONitem.SelectedIndex = WONitem.Items.Count - 8;
        }
        else
            {

            }

    }


    DesignNo.IsEnabled = false;

当WON等于AK89时,WONitem将WONitems成功更改为14。 当WON等于AK85且DesignNO等于“100019646-2”时,我可以看到该消息(我已经放置了所有这些消息,因此我知道在程序中执行了哪个命令) “在AK85 !!! AK85”然后消息“在图中没有100019646-2 !!!”弹出但下一个命令不会被执行,也会消息 MessageBox.Show(“应该立即清除!!!”); 永远不会出现!

我被困住了。有什么想法吗?

谢谢你们的时间。

1 个答案:

答案 0 :(得分:0)

最后是我(一如既往)。

我不得不用string.Compare替换我的比较。我有一些空格和破折号在我的字符串中根本不受欢迎。无论如何string.Compare完成了这项工作。

代码如下。

contentStr = (this.DesignNo.SelectedItem ?? string.Empty).ToString();

            string compareWith = " 100019406-2";

            int compareResult = string.Compare(contentStr, compareWith);

            if (compareResult == 1)