Я думаю, проблема в том, что следующий код взят из вашего shortFormCodec_SelectionChanged
метода. Вы устанавливаете shortFormCodec.Text = display.finalResult();
сразу после shortFormCodec.Text = "test";
. Конечный результат никогда не будет виден, потому что он немедленно перезаписывается с помощью "test". клавиша F8), наблюдая за значениями ваших переменных и текстовых полей. Если вы наведете указатель мыши на переменные и раздел .Text
любой строки shortFormCodec.Text
, он покажет вам его значение в этой точке программы.
Однако я думаю, вы можете найти это полезным, если вы настройте свой код, чтобы использовать структуру if {} else if {} else {}
. Я бы также изменил метод finalResult()
на свойство, поскольку он ничего не делает, кроме как возвращает строку. Например:
class updateVTCShortCode
{
// You could set the default value to an empty string I.e. = ""
// but having it set to "Not set" may help you spot any problems for now.
// As long as you remember to call mergeShortCode() first, you would never
// see "Not set" returned anyway. But this would help you spot that mistake.
public string FinalResult { get; set; } = "Not set";
public void mergeShortCode(String longFormCodec)
{
if (longFormCodec.Equals("Cisco SX80"))
{
String sendShortForm = "SX80";
FinalResult = "V-T" + sendShortForm;
}
else if (longFormCodec.Equals("Cisco Webex Codec Plus"))
{
String sendShortForm = "SRK";
FinalResult = "V-T" + sendShortForm;
}
else if (longFormCodec.Equals("Cisco Webex Codec Pro"))
{
String sendShortForm = "SRK";
FinalResult = "V-T" + sendShortForm;
} else
{
// If longFormCodec is not matched, set the result to ".."
FinalResult = "..";
}
}
Установив конечный результат на «..» в блоке else метода mergeShortCode()
и установив значение по умолчанию для свойства FinalResult (даже если это пустая строка Ie ""). Вы предотвращаете, чтобы FinalResult когда-либо был null
и предоставлял все возможные результаты из одной функции. Это означает, что вы можете упростить метод shortFormCodec_SelectionChanged()
до следующего и легко повторно использовать метод mergeShortCode()
в другом месте:
public void shortFormCodec_SelectionChanged(object sender, RoutedEventArgs e)
{
//UPDATE THE SHORTCODE TEXTBLOCK
updateVTCShortCode display = new updateVTCShortCode();
display.mergeShortCode(longFormCodec.SelectedItem.ToString());
shortFormCodec.Text = display.FinalResult;
}
}