我已經做了一個小例子項目可視化。我有一個項目,其中包含許多組合框,這些組合框會影響到我需要應用的其他組合框。綁定ComboBox以更改另一個帶有XAML的組合框?
我有兩個組合框,編號和顏色。
的的SelectedItem在號改變項目 & 的SelectedItem在顏色。
如何使用WPF XAML綁定ItemSource和SelectedItem?
使用ICollection?
從ObservableCollection中添加/刪除項目?
創建一個列表作爲集合的ItemSource?
單獨使用Add()/ Remove()更改項目或將整個 ItemSource更換爲另一個項目?
comboBoxNumers = 1,2,3,4
comboBoxColors =紅,綠,藍
- 1→紅
- 2→綠色
- 3 →藍色
4→去除紅色,綠色。添加黃色。
1,2或3→刪除黃色(如果存在)。添加紅色,綠色(如果不存在)。
1→紅
2→綠色
4→黃色(刪除紅/綠)
老C#的方式我一直在使用:
填充組合框
List<string> NumbersItems = new List<string>() { "1", "2", "3", "4" };
NumbersItems.ForEach(i => comboBoxNumbers.Items.Add(i));
List<string> ColorsItems = new List<string>() { "Red", "Green", "Blue" };
ColorsItems.ForEach(i => comboBoxColors.Items.Add(i));
1→紅
// Numbers 1
if ((string)comboBoxNumbers.SelectedItem == "1")
{
// Remove Yellow if Exists
if (comboBoxColors.Items.Contains("Yellow")) {
comboBoxColors.Items.RemoveAt(comboBoxColors.Items.IndexOf("Yellow"));
}
// Add Red if Does Not Exist
if (!comboBoxColors.Items.Contains("Red")) {
comboBoxColors.Items.Insert(0, "Red");
}
// Select Red
comboBoxColors.SelectedItem = "Red";
}
2→綠色
// Numbers 2
if ((string)comboBoxNumbers.SelectedItem == "2")
{
// Remove Yellow if Exists
if (comboBoxColors.Items.Contains("Yellow")) {
comboBoxColors.Items.RemoveAt(comboBoxColors.Items.IndexOf("Yellow"));
}
// Add Green if Does Not Exist
if (!comboBoxColors.Items.Contains("Green")) {
comboBoxColors.Items.Insert(1, "Green");
}
// Select Green
comboBoxColors.SelectedItem = "Green";
}
4→黃色(刪除紅/綠)
// Numbers 4
if ((string)comboBoxNumbers.SelectedItem == "4")
{
// Remove Red if Exists
if (comboBoxColors.Items.Contains("Red")) {
comboBoxColors.Items.RemoveAt(comboBoxColors.Items.IndexOf("Red"));
}
// Remove Green if Exists
if (comboBoxColors.Items.Contains("Green")) {
comboBoxColors.Items.RemoveAt(comboBoxColors.Items.IndexOf("Green"));
}
// Add Yellow if Does Not Exist
if (!comboBoxColors.Items.Contains("Yellow")) {
comboBoxColors.Items.Insert(0, "Yellow");
}
// Select Yellow
comboBoxColors.SelectedItem = "Yellow";
}
的方法寫一個視圖模型。 「從ObservableCollection添加/刪除項目」。將集合綁定到'ComboBox.ItemsSource',不要直接觸摸'Items'。 –