Treeview示例为here。
看到this条评论后应用了过滤器。
var filter = SearchHints.WhenValueChanged(t => t.SearchText)
.Select(BuildFilter);
_cleanUp = employeeService.Employees.Connect()
.TransformToTree(employee => employee.BossId, Observable.Return((Func<Node<EmployeeDto, int>, bool>) DefaultPredicate))
.Filter(filter)
.Transform(node => new EmployeeViewModel(node, SearchHints))
.Bind(out _employeeViewModels)
.Subscribe();
...
private Func<Node<EmployeeDto, int>, bool> BuildFilter(string searchText)
{
if (string.IsNullOrEmpty(searchText)) return node => true;
return node => node.Item.Name.Contains(searchText, StringComparison.OrdinalIgnoreCase);
}
但是父级不符合过滤条件。 因此,在树视图中看不到符合条件的子节点。
https://user-images.githubusercontent.com/19144210/70210521-3f12d500-1776-11ea-9173-5e932c00583c.png
https://user-images.githubusercontent.com/19144210/70210530-4508b600-1776-11ea-87ea-8b869619f940.png
我该如何处理?
答案 0 :(得分:0)
使用WhenAnyValue
代替WhenValueChanged
。
我不知道为什么,但是WhenValueChanged会导致很多问题。