c# - 创建自定义 Button 控件的最节省内存的方法是什么?
问题描述
好的,所以我创建了一个自定义按钮控件,它有一个关联的 xaml 文件。我的另一个选择是没有关联的 xaml 文件,只在外部定义按钮的样式(在 Generic.xaml 中)。
使用前一种方法时,是否为我创建的每个按钮实例创建了附加的 xaml 文件的新实例?或者系统是否足够聪明,可以只创建该 xaml 数据的单个实例并将其用于每个按钮?
解决方案
在这两种情况下,都会为您创建的每个控件实例重新构建控件的 XAML 树。您可以通过在其构造函数中放置一个向调试控制台输出内容的自定义控件来验证这一点。如果你将它放在带有 XAML 的自定义控件的模板或内容中,在这两种情况下,每当你创建一个新实例时都会创建一个新实例。
然而,ListView
情况有点不同——它具有虚拟化功能并重用其项目,因此一旦它加载了足够的项目以供显示和一些缓冲区用于滚动,它就会继续使用数据绑定值更新现有实例。
推荐阅读
- javascript - Highcharts条形图中奇怪的系列排序问题
- java - 进行从多列中选择值列表的 SQL 查询
- python - 如何找到列表中出现次数最多的两个字符串?
- css - CSS Position absolute 不适用于某些图标
- powerbi - 如何将 power bi 数据集中的文本列设为数值
- angularjs - 使用 require.js 创建 angular.js 服务的未知提供程序错误
- javascript - 没有onclick wordpress的重定向页面
- swift - 检查协议数组中的对象是否为子类类型
- flutter - 小部件构建后如何获取状态更改值?
- mongodb - 如果数组中的所有元素都匹配条件,Mongo 删除文档