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>-->