【发布时间】:2015-10-22 16:47:31
【问题描述】:
在我当前的 WPF MVVM 设置中,我有一个从文件/文件夹目录填充的树视图。包括子文件夹和文件。但是我想实现一个简单的“收藏夹”功能。这意味着我可以单击树视图中每个文件的复选框,然后当我单击主“UI 中的复选框”时,它将过滤列表以仅显示“收藏夹”。
这似乎是一个普遍的问题,但我该怎么做呢?组织和绑定 UI?
我已将解决方案“visual studio 2013”发布到我的保管箱中,供任何愿意帮助我的人使用。
Download Dropbox Files
我的猜测是添加另一个 ObservableCollection,它将检查的节点存储为收藏夹,以及原始树视图节点。因此,当用户启用主复选框时,它会将收藏夹列表加载到 ui,当取消选中时,它会重新加载树视图。
// collection of nodes which you see in the image below on the left
public ObservableCollection<INode> DisplayNodes //nodes displayed in UI
public ObservableCollection<INode> FavoriteNodes //nodes marked as favorites
public ObservableCollection<INode> StructureNodes //system node structure
下面的伪函数
public void PopulateUI()
{
DisplayNodes.Clear();
if (showFavorites.isChecked)
{
DisplayNodes = FavoriteNodes;//nodes displayed in UI
}else{
DisplayNodes = StructureNodes;
}
}
【问题讨论】: