静态资源DataTemplate与内联DataTemplate

时间:2018-02-16 14:43:24

标签: wpf wpfdatagrid datatemplate

  1. 假设我有一个CellContentTemplateDataGrid中的一列),我将其DataTemplate定义为内联:

    <Column.CellContentTemplate>
        <DataTemplate>
    
        </DataTemplate> 
    </Column.CellContentTemplate>
    
  2. StaticResource引用预定义DataTemplate相比,内存使用量方面是否存在差异? 完成DataTemplate的所有内容后,无论如何复制。

    1. 我们假设DataTemplate TextBlock中有Foreground个“绿色”。如果我DataTemplate引用StaticResource或者是否复制了这个“绿色”画笔是否会在行之间重复使用?

1 个答案:

答案 0 :(得分:3)

DataTemplate本身只会创建一次,无论您是将其创建为可重用资源还是内联资源。因此,除非您创建DataGrid的另一个实例,否则在内存使用方面没有区别。然后会有另一个内联DataTemplate创建的实例。

  

让我们说DataTemplate TextBlock ForegroundDataTemplate&#34;绿色&#34;在里面。这是&#34; Green&#34;如果我通过StaticResource引用Brushes.Green或者是否复制了,那么刷会在行之间重复使用?

字符串&#34;绿色&#34;您在XAML标记中定义的值被解析为Brushes,这是prev/next类的静态属性,每次都返回相同的缓存和冻结笔刷。