c# - WPF 数据网格用户控件绑定
问题描述
是否可以将相同的用户控件添加到 datagrid column1 和 column2?只有一个用户控件。
<DataGrid SelectionUnit="Cell" Name="dataGrid" AutoGenerateColumns="False" CanUserAddRows="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTextColumn Header="test1" Binding="{Binding Name}"/>
<DataGridTextColumn Header="test2" Binding="{Binding image1}"/>
<DataGridTextColumn Header="test3" Binding="{Binding image2}"/>
<DataGridTemplateColumn Header="column1">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<local:UcFrameLessSheetInfoListviewItem />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="column2">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate x:Name="test">
<local:UcFrameLessSheetInfoListviewItem />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
解决方案
要共享单元格模板,您必须在网格、用户控件或 App 级别将其声明为资源:
<UserControl.Resources>
<DataTemplate x:Key="TestCellTemplate" DataType="viewModel:MyItemsType">
<local:UcFrameLessSheetInfoListviewItem />
</DataTemplate>
...
</UserControl.Resources>
然后你可以使用它来引用它StaticResource
:
<DataGridTemplateColumn Header="column1" CellTemplate="{StaticResource TestCellTemplate}" />
<DataGridTemplateColumn Header="column2" CellTemplate="{StaticResource TestCellTemplate}" />
推荐阅读
- javascript - 在节点js中调用函数内部的函数
- excel - Excel宏:如何在循环到文档表而不是页面时获取字头
- testing - 使用 pressKey 模拟 typeText 不会产生预期的结果
- php - Codeigniter - 创建唯一的页面查看计数器
- c++ - 显示用户输入的平均数大于 50 和所有数字的乘积可被 3 整除
- java - org.openqa.selenium.InvalidSelectorException: 无效选择器 SyntaxError: Unexpected token } 通过 Selenium Java 使用 XPath
- vb.net - 在 VB.Net 函数中编写较短的交集
- string - Liquid (Shopify) - Append String is Empty
- c# - 以线性方式在列表中的 DateTime 之间进行插值,并将这些值重新应用于列表
- javascript - vuejs2复制剪贴板问题