-1
Ausgewählte Treenodes nach dem Filtern der Treeview beibehalten Ich filtere eine Baumansicht. Wenn es überprüfte Knoten gibt, möchte ich die überprüften Knoten in der gefilterten Baumansicht behalten. Und wenn ich den Filter entferne, müssen die Knoten noch überprüft werden. Ich mache etwas falsch, der Filter funktioniert, aber ich verliere die Checkes.Ausgewählte Treenodes nach Filterung beibehalten
List<string> ListCheckboxItems = new List<string>(); //create a list from the checkedlistbox itmes
List<string> KeepSelectedItems = new List<string>(); //Create a list with the selected items
private void textBox1_TextChanged(object sender, EventArgs e) //new 24-12-2017
{
var filteredItems = ListCheckboxItems.Where(item => item.Contains(textBox1.Text));
List<string> FilterList = filteredItems.ToList();
treeViewFilter.Nodes.Clear(); //remove all nodes
foreach (object item in FilterList) //Fill it again with only the filtered items
{
treeViewFilter.Nodes.Add(item.ToString()); //new 24-12-2017
}
foreach (string keepitem in KeepSelectedItems) //Keep the items checked when filter starts
{
TreeNode[] arr = treeViewFilter.Nodes.Find(keepitem, true);
foreach (TreeNode s in arr)
{
treeViewFilter.SelectedNode = s;
s.Checked = true;
}
}
//check if empty the put the original list back
if (textBox1.Text == string.Empty) //park the checked items
{
foreach (string item in KeepSelectedItems)
{
TreeNode[] arr = treeViewFilter.Nodes.Find(item, true);
foreach (TreeNode s in arr)
{
treeViewFilter.SelectedNode = s;
s.Checked = true;
}
}
}
}