wpf datagrid常用绑定以及格式

1、表格数据格式化(

a、时间格式

<DataGridTextColumn Width="*" Header="委托时间" Binding="{Binding EntrustTime,StringFormat={}{0:HH:mm:ss}}"></DataGridTextColumn>

b、字符串加百分号

<DataGridTextColumn Header="盈利率" Binding="{Binding ProfitRate, StringFormat={}{0:P2}}">
 

2、表格中某列的样式模板(通过两个参数,复合触发器来调用converter改变字体颜色)

<DataGridTextColumn.CellStyle>
                        <Style TargetType="DataGridCell" >
                            <Setter Property="Foreground">
                                <Setter.Value>
                                    <MultiBinding Converter="{StaticResource *Convert}">
                                        <Binding Path="param1"/>
                                        <Binding Path="param2"/>
                                    </MultiBinding>
                                </Setter.Value>
                            </Setter>
                        </Style>
</DataGridTextColumn.CellStyle>    

3、表格行样式设定(样式触发器,让选中行的背景色变黄色)

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow" >
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter  Property="Background" Value="Yellow" />
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

4、数据触发器(获取绑定值,如果是未登录,改变该值为登录字样)

<DataGridTemplateColumn   Header="审批时间"  CanUserSort="False">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock>
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Setter Property="Text" Value="{Binding ApprovalTime,StringFormat='yyyy-MM-dd HH:mm:ss'}"></Setter>//设置一个初始值
                        <Style.Triggers>
                                <DataTrigger Binding="{Binding ApprovalTime}"  Value="0001/1/1 0:00:00">满足该条件时,执行下面的setter
                                <Setter Property="Text" Value="-"></Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

5、获取用户权限(只有超管才显示的内容)
<DataTrigger Binding="{Binding DataContext.IsManger, RelativeSource={RelativeSource FindAncestor}}" Value="True">
<Setter  Property="Visibility" Value="Visiable"></Setter>
</DataTrigger>

6、写在头部资源文件里的style以及converter

<ResourceDictionary>          
        <ConvertTool:VisibilityConverter x:Key="VisibilityValueConvert"   />      
        <Style x:key="MultiBindingStyle" TargetType="TextBlock">        
            <Setter Property="Visibility">          
                <Setter.Value>            
                    <MultiBinding Converter="{StaticResource ResourceKey=VisibilityValueConvert}"><!--被使用的资源需在使用前定义-->              
                        <Binding ElementName="text1" Path="Text"  />                   
                        <Binding ElementName="text2" Path="Text" />            
                    </MultiBinding>          
                </Setter.Value>        
            </Setter>      
        </Style>    
        </ResourceDicionary>  

7、事件触发器简单使用

                <StackPanel Grid.Row="1"  Grid.ColumnSpan="2" Margin="0 50 0 0" HorizontalAlignment="Center"   VerticalAlignment="Top">
                    <TextBlock Foreground="#999"    FontSize="15"  Text="暂无数据" >
                        <TextBlock.Style>
                            <Style TargetType="TextBlock" >
                                <Setter Property="Visibility" Value="Collapsed"></Setter>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Num}" Value="0">
                                        <Setter Property="Visibility" Value="Visible"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </TextBlock.Style>
                    </TextBlock>

8、在datagrid里获取list之外的数据,比如全局的数据

        现在resource资源里写入

        <FrameworkElement x:Key="ProxyElement" DataContext="{Binding}"/>

        然后在grid后内容前写入

                  <ContentControl Visibility="Collapsed" Content="{StaticResource ProxyElement}"/>
        最后在datagrid的列里引用

                <!--<DataGridTextColumn Header="hmd" Binding="{ Binding  DataContext.OperatStr,Source={StaticResource ProxyElement} }"></DataGridTextColumn>-->
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值