0

我在我的应用程序中添加了一个验证模块,它将引导用户注意需要注意的输入。我想按照它们添加到可视树中的相同顺序浏览这些控件。每个控件的 Tab Index 设置为 Int Max,这意味着只需按 Visual Tree 的顺序进行。

我的验证模块只是得到一堆控件来验证。它需要从上到下对它们进行排序,以便用户可以按顺序浏览表单。我想保留原始的标签行为。 我只需要知道列表中控件的可视化树顺序,这样我就可以正确地对它们进行排序。

4

1 回答 1

0

经过几天的研究,我意识到这不是开箱即用的。最后,我只是调用FindVisualChildren来获取所有 FrameworkElements,如果控件实现了我的 IValidatable 接口,我会从计数器中为其分配下一个可用索引。我必须添加一个名为 Order 的依赖属性才能使其工作(我不想与现有的 TabIndex 混为一谈)。然后,当我得到需要验证的控件列表时,我只是按顺序对它们进行排序。

这绝对不是一个可扩展的解决方案,但幸运的是我只需要运行一次。

如果有人有更好的解决方案,请发布。我觉得脏。

于 2016-06-22T22:22:21.530 回答