Не удается получить операторы IF для обновления TextBlock из выбора ComboBox C# - PullRequest
1 голос
/ 18 июня 2020

Я пытаюсь вернуться к основной программе, но она должна измениться при изменении ComboBox. Независимо от того, что он возвращает, то, что String установлено в верхней части класса. Если я изменю the result = ""; на result = "Test"; в текстовом поле, которое я пытаюсь обновить, будет отображаться Test. Но он ничего не получит из операторов IF.

Спасибо за помощь!

ОСНОВНАЯ ПРОГРАММА

namespace VTCPT
{
    /// <summary>
    /// 
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();


        }

        private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
              //UPDATE THE SHORTCODE TEXTBLOCK
            updateVTCShortCode display = new updateVTCShortCode();
            display.mergeShortCode(longFormCodec.SelectedItem.ToString());
            if (String.IsNullOrEmpty(display.finalResult()))
                { shortFormCodec.Text = ".."; }
            else { shortFormCodec.Text = display.finalResult(); }
            }

        private void updateShortForm(object sender, SelectionChangedEventArgs e)
        {

        }


        private void TextBlock_SelectionChanged(object sender, RoutedEventArgs e)
        {


        }

        private void fsSiteBuild_SelectionChanged(object sender, RoutedEventArgs e)
        {
        }


        private void updateSiteBuild(object sender, TextChangedEventArgs e)
        {
            int index = fsRoomDesig.Text.IndexOf(".");

            if (index > 0)
            { fsSiteBuild.Text = fsRoomDesig.Text.Substring(0, index); }
            else { fsSiteBuild.Text = ".."; }
        }

        private void vtcSystemName_SelectionChanged(object sender, RoutedEventArgs e)
        {

        }     
    }
}

updateVTCShortCode CLASS

namespace VTCPT
{
    class updateVTCShortCode
    {
        String result = "";  //////ALWAYS RESULTS ONLY IN WHAT IS HERE
        public void mergeShortCode(String longFormCodec)
         {

            if (longFormCodec == "Cisco SX80")
            {
                String sendShortForm = "SX80";
                result = "V-T" + sendShortForm;

            }
            if (longFormCodec == "Cisco Webex Codec Plus")
            {
                String sendShortForm = "SRK";
                result = "V-T" + sendShortForm;
            }
            if (longFormCodec == "Cisco Webex Codec Pro")
            {
                String sendShortForm = "SRK";
                result = "V-T" + sendShortForm;
            }
    }
        public String finalResult()
        { return result; }
    }
}

1 Ответ

0 голосов
/ 18 июня 2020

Вы неправильно сравниваете строки. Вам нужно использовать .equals () для строк.

Вам нужно заменить все сравнения строк, в которых вы используете ==, на .equals (), и он будет работать:

namespace VTCPT
{
    class updateVTCShortCode
    {
        String result = "";  //////ALWAYS RESULTS ONLY IN WHAT IS HERE
        public void mergeShortCode(String longFormCodec)
         {

            if (longFormCodec.equals("Cisco SX80"))
            {
                String sendShortForm = "SX80";
                result = "V-T" + sendShortForm;

            }
            if (longFormCodec.equals("Cisco Webex Codec Plus"))
            {
                String sendShortForm = "SRK";
                result = "V-T" + sendShortForm;
            }
            if (longFormCodec.equals("Cisco Webex Codec Pro"))
            {
                String sendShortForm = "SRK";
                result = "V-T" + sendShortForm;
            }
    }
        public String finalResult()
        { return result; }
    }
}
...