如何处理删除一组相关的WPF UI元素



我感兴趣的是实现删除相关UI元素集的最佳方式。

这就是我正在做的:我在垂直滚动查看器中嵌入了一个网格。用户可以在运行时通过单击按钮将多个列表框添加到此网格。添加每个ListBox时,还会添加正确数量的网格行定义和网格拆分器,以允许调整每个ListBox的大小。这个零件工作正常。

诀窍在于,用户还可以选择关闭列表框。当他们这样做时,我将需要删除相应的Rowdefinitions和"属于"关闭Listbox的Gridsplitter。

通过对Grid.Childrens和Grid.Rowdefinitions的迭代,我可以很容易地确定要删除哪些Rowdefinitions和Gridsplitter。但我想知道是否有更好的方法来处理这个问题。也许是通过将这些元素组合在一个集合中,然后简单地一次性删除这个集合?不过不知道该怎么做。

任何想法或建议都将不胜感激!

我不知道在视觉/逻辑树中有什么明显或简单的方法来关联它们,但你当然可以使用一个关联数组(Dictionary<T, U>),它与你要删除的元素和其他需要删除的项一起使用。

我认为这基本上就是你所描述的。

我认为,任何更聪明的东西都不值得增加复杂性,除非你有特定的需求

最新更新