wpf DataGrid 里的列模版的值绑定
第一步:建立一个模版文件,如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Main.TemplateResource"> <DataTemplate x:Key="fileTypeIcon"> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Stretch"> <!--<TextBlock Cursor="Hand" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,0" Name="btnMin" Text="" Style="{StaticResource FontAwesome}" FontSize="14" Foreground="#f8c92a"></TextBlock>--> <TextBlock Text="{Binding RowData.Row.FileName}"></TextBlock> </StackPanel> </DataTemplate> </ResourceDictionary>
第二步:引用模版文件 (由于我是用在用户控件里,所以没有使用Window.Resources 这里用的是 Control.Resources)
<Control.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Main;component/TemplateResource/FileTypeIconResource.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Control.Resources>
第三步:使用模版
CellTemplate="{DynamicResource fileTypeIcon}"
<dxg:GridControl Name="grid" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionMode="Row"> <dxg:GridControl.View> <dxg:TableView NavigationStyle="Row" x:Name="gridView" AllowScrollAnimation="True" ShowGroupPanel="False" /> </dxg:GridControl.View> <dxg:GridControl.Columns> <dxg:GridColumn Header="" CellTemplate="{DynamicResource fileTypeIcon}" FieldName="Type" HorizontalHeaderContentAlignment="Center" Width="35" ></dxg:GridColumn> <dxg:GridColumn Header="文件名" HorizontalHeaderContentAlignment="Left" FixedWidth="True" FieldName="FileName" Width="*" /> <dxg:GridColumn Header="修改时间" HorizontalHeaderContentAlignment="Center" FieldName="EditDate" Width="100" /> <dxg:GridColumn Header="大小" HorizontalHeaderContentAlignment="Center" FieldName="FileSize" Width="80" /> </dxg:GridControl.Columns> </dxg:GridControl>
备注:
<TextBlock Text="{Binding RowData.Row.FileName}"></TextBlock>
这里的RowData.Row.FileName的使用方法害我浪费了好长时间。
分类:
WPF
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?