我可以使用数据绑定从数组中加载包含值的组合框吗
本文关键字:包含值 组合 加载 可以使 数据绑定 数组 我可以 | 更新日期: 2023-09-27 17:59:08
我当前正在将信息加载到第二个&第三个组合框取决于我第一个组合框上的选择。我正在从数组中加载信息。它工作得很好,但代码集确实很长。有没有一种方法可以让它更整洁并减少代码量。我想到的另一种方法是使用数据绑定并四处阅读。但我不知道如何将数组值数据绑定到组合框。谢谢你的建议。
//1st combo box name - secondaryTable
//2nd combo box name - stCombo1
//3rd combo box name - stCombo2
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
if (((ComboBoxItem)secondaryTable.SelectedItem).Content.ToString() == "Agents")
{
stCombo1.Items.Clear();
stCombo2.Items.Clear();
foreach (string x in tableArray)
{
stCombo1.Items.Add(x);
stCombo2.Items.Add(x);
}
}
else if (((ComboBoxItem)secondaryTable.SelectedItem).Content.ToString() == "Missions")
{
stCombo1.Items.Clear();
stCombo2.Items.Clear();
foreach (string x in attributeArray)
{
stCombo1.Items.Add(x);
stCombo2.Items.Add(x);
}
}
else
{
stCombo1.Items.Clear();
stCombo2.Items.Clear();
foreach (string x in jobsArray)
{
stCombo1.Items.Add(x);
stCombo2.Items.Add(x);
}
}
}
要根据Peter的答案构建,还可以直接将组合框的ItemsSource绑定到要使用的字符串数组。应该看起来像:
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
switch (((ComboBoxItem)secondaryTable.SelectedItem).Content.ToString())
{
case "Agents":
stCombo1.ItemsSource = tableArray;
stCombo2.ItemsSource = tableArray;
break;
case "Missions":
stCombo1.ItemsSource = attributeArray;
stCombo2.ItemsSource = attributeArray;
break;
default:
stCombo1.ItemsSource = jobsArray;
stCombo2.ItemsSource = jobsArray;
break;
}
}
假设这些只是字符串数组,那么数据绑定应该非常简单。如果不是,你还有一点额外的工作要做。