qu1*_*dry 3 .net wpf xaml wpfdatagrid
我正在尝试以编程方式向我的DataGrid添加列,因为它们在运行时才知道.我已经完成了大部分工作,并且从代码中添加"普通"列并不是问题.但是,我正在尝试添加的列现在有一个DataTemplate.这是XAML:
<DataGridTemplateColumn Header="{Binding colHeader}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="{Binding BorderColour}" BorderThickness="2">
<TextBlock Text="{Binding TextInfo}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
通常我会使用这样的东西来创建一个列添加到网格:
Private Function AddColumn(colHeader As String, colBinding As String) As DataGridColumn
Dim textColumn As New DataGridTextColumn()
textColumn.Header = colHeader
textColumn.Binding = New Binding(colBinding)
Return textColumn
End Sub
Run Code Online (Sandbox Code Playgroud)
但我对如何添加更复杂的XAML感到困惑.有什么建议?
谢谢你的帮助!
使用x:Key属性在资源字典中定义列的DataTemplate,然后在后面的代码中访问它以设置单元格模板.
<DataTemplate x:Key="your_data_template">
<Border BorderBrush="{Binding BorderColour}" BorderThickness="2">
<TextBlock Text="{Binding TextInfo}" />
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
然后在代码背后
textColumn.CellTemplate = Application.Current.FindResource("your_data_template") as DataTemplate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |