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的使用方法害我浪费了好长时间。

原文地址:https://www.cnblogs.com/wjx-blog/p/10921727.html

时间: 2024-10-18 14:38:33

wpf DataGrid 里的列模版的值绑定的相关文章

WPF DataGrid动态生成列的单元格背景色绑定

原文:WPF DataGrid动态生成列的单元格背景色绑定 <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Column.DisplayIndex}" Value="1"> <Setter Property="Background" Value="{Binding RelativeSource={RelativeSour

WPF Datagrid 动态生成列 并绑定数据

原文:WPF Datagrid 动态生成列 并绑定数据 说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码) 数据来源于左侧列 左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性 WPF 动态生成对象属性 (dynamic) ObservableCollection<NameList> listName = new ObservableCollection<NameList>(); privat

WPF datagrid 动态增加列

DataGrid动态增加列 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="

C# wpf DataGrid 多一列问题

在 vs2010 中使用wpf手动新建 columns 显示的时候总是会多出一个空列,试过很多方法,都没法解决.最后,在网上看到一个解决方法,问题就解决了. 在DataGrid Columns属性中添加column 在添加的column的xaml中添加 Width="*" 如 <DataGridTextColumn Header="Header1" Width="*" x:Name="col1" /> <Da

WPF DataGrid的DataGridCheckBoxColumn列前台勾选后对应的绑定数据并未更新

WPF用的时间也不短了,还是遇到一些低级问题,好惭愧. 问题是这样的,WPF的DataGrid中,DataGridCheckBoxColumn列绑定了数据源中的一个boo类型的字段,模式为TwoWay,但界面中勾选后,数据源中的对应字段内容并未更新, 这样就好了 Binding="{Binding IsEmergency,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 记录一下答案使这里找到的,微软官方论坛好强大. https://s

(转)为什么Datagrid里getSelections只能获取一行值呢?

$('#Yptable').datagrid({method: 'Get', 传输格式'post'和'get'pagination: true, //分页栏rownumbers: true, //行号singleselect:false,loadMsg: '… 处理中,请稍候…',url: '/YpInfo/GetYpList',toolbar: [{text: '删除', //工具栏:删除按钮iconCls: 'icon-remove',handler: function() {//删除事件v

Wpf DataGrid动态添加列,行数据(二)

这是第二中方法,可直接绑定,我这里只是做出了一种思路,并不是最完美. 这里注意一下,因为我里面引用了MVVMLight,所以可能代码不是复制过去就能用了的. 样式也是,所以复制过去看不是我贴出来的界面这也不奇怪.代码: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions

easyui的datagrid里getSelections只能获取一行值???

使用getSelections只能获取到一行的值,检查了半天是因为idField属性值写错,更正之后ok. 解决办法二:改为使用getChecked,idField写错无影响, 注: getSelections.getChecked的idField属性注掉,也可以获取到多行的值了. getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录.getSelections:取得所有选中行数据,返回元素记录的数组数据. getChecked:取得checkbox选择行

【转】WPF DataGrid 获取选中的当前行某列值

方法一:DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem; string result = mySelectedElement.Row[0]ToString(); 方法二:var a = this.dataGrid1.SelectedItem; var b = a as DataRowView;string result = b.Row[0].ToString(); [转]WPF DataGrid 获取选中的当