我遇到了wpf ComboBox的问题。 我首先添加了一个文本框作为第一个项目,用于我的过滤建议 然后我通过Foreach循环在Combobox中添加了大约20个Checkbox。 像这样
现在当我将它们过滤掉(我检查是否为真,然后是Visibility.Collapsed)它们的痕迹仍然在Combobox中,就像这样
请记住,这些项目是逐个添加到组合框中的 像这样
DataTable machinesTable = machineModel.GetAllMachines().Tables[0];
List<CheckBox> list = new List<CheckBox>();
foreach (DataRow item in machinesTable.Rows)
{
string ID = item["ID"].ToString();
string manufacture = item["MANUFACTURER"].ToString();
string model = item["MODEL"].ToString();
MachinesComboBox.Items.Add(new CheckBox() { Uid = ID, Content = manufacture + " - " + model });
}
,过滤系统就像这样工作
foreach (object item in MachinesComboBox.Items)
{
if (item is CheckBox)
{
if (((CheckBox)item).Content.ToString().Contains(MachinFilterTextbox.Text) || MachinFilterTextbox.Text=="")
{
((CheckBox)item).Visibility = Visibility.Visible;
}
else
{
((CheckBox)item).Visibility = Visibility.Collapsed;
}
}
}
答案 0 :(得分:2)
您应该查看MVVM design pattern,但作为快速解决方法,您可以设置父hibernate.hbm2ddl.auto=update
容器的Visibility
:
ComboBoxItem