【发布时间】:2013-08-12 19:02:43
【问题描述】:
我正在使用 C# 中的 WPF。我正在使用GetNextControl 方法将所有子控件存储在Control.ControlCollection 中。我想遍历结果并只填写文本框。我已经想到了两种方法来做到这一点,但哪种方法更有效:
- 搜索一次并将结果存储在
Control.ControlCollection中。 - 使用
foreach循环遍历集合并使用多个if/else语句找到我正在寻找的TextBox并在框中填写一些文本。
或者,
- 搜索所有控件并将其存储在
Control.ControlCollection中。 - 使用集合的find方法找到一个有一定名字的
TextBox,并在TextBox中填写一些文字。
我认为第一种方式会比较慢,因为要进行更多比较。而第二种方法只使用搜索。
【问题讨论】:
-
两件事 - 你没有在这里问一个问题,是什么阻止你同时尝试和测量?
-
您认为“只搜索”是如何实现的?但您可能无需担心——很可能任何解决方案都足够好,因为问题规模很小。
-
第 3 部分 -
OfType<Textbox>()? -
UI 控件具有树结构,因此搜索算法足够快,如果现有算法不够快,您可以实现自己的。但结果可能会因您的 UI 架构而异。我们唯一可以建议的是:分析。
-
忘记这一切。在 WPF 中编写单行代码之前学习 MVVM。你做了很多不必要的事情。
标签: c# wpf performance