在Visibility.Collapsed

时间:2017-06-20 11:31:43

标签: c# wpf combobox filtering visibility

我遇到了wpf ComboBox的问题。 我首先添加了一个文本框作为第一个项目,用于我的过滤建议 然后我通过Foreach循环在Combobox中添加了大约20个Checkbox。 像这样  enter image description here

现在当我将它们过滤掉(我检查是否为真,然后是Visibility.Collapsed)它们的痕迹仍然在Combobox中,就像这样enter image description here

请记住,这些项目是逐个添加到组合框中的  像这样

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;
        }
    }
}

1 个答案:

答案 0 :(得分:2)

您应该查看MVVM design pattern,但作为快速解决方法,您可以设置父hibernate.hbm2ddl.auto=update容器的Visibility

ComboBoxItem