gpt4 book ai didi

wpf - 为什么不应该将 UserControls 用作 ItemsSource?

转载 作者:行者123 更新时间:2023-12-04 20:18:06 31 4
gpt4 key购买 nike

我是answering another question在这里,用户有一个 ListViewItemsSource包含 UserControls .我说我不会推荐它,并被问为什么。

这真的让我很惊讶。我以前从未考虑过。我知道这样做不是一个好主意,但我从来没有真正想过为什么这样做不是一个好主意。

我唯一能想到的是,您正在为集合中的每个项目在内存中创建 UIElement,这可能比数据对象重得多。这不仅会增加您的应用程序使用的内存,还会阻止您使用虚拟化。而且它不符合 MVVM 设计模式,我在使用 WPF 时几乎虔诚地使用它。

那么,有人能列出你不应该使用 UserControls 列表的所有原因吗?作为 ItemsSource ?或者,如果您不这么认为,您为什么要这样做?

基本上,当人们问我为什么他们不应该使用 List<MyUserControl> 时,我想指出一些东西。和 ItemsSource="{Binding MyUserControlList}"在他们的应用程序中。

最佳答案

您关于性能开销的观点非常好。

我会问相反的问题....你为什么想要?

我过去在 VB6 中看到过这种做法。开发人员将信息存储在用户控件中的某个数组中,并使用它来访问最初显示该控件的 UI 上的生命周期之外的信息。

这种模式违反了业务逻辑、模型和用户界面的分离。

懒惰和马虎之间有一条很好的界限……重用和误用。我只关心代码重用......但是当开发人员告诉我他们想使用用户控件在软件的不同区域之间传递信息时,我认为这属于滥用。它对可维护性产生不利影响。

所以,如果回答“你为什么要这样做?”与使用用户控件传递信息有关,上述内容肯定适用。

附言
我不清楚您所链接的问题的意图是什么。此外,在同一上下文中绑定(bind)到其他 UI 元素也是有正当理由的(通常使用相对绑定(bind)源)。

关于wpf - 为什么不应该将 UserControls 用作 ItemsSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8300105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com