none
DataGrid 中 列1,数据源,如何根据值改变字体颜色? RRS feed

  • 问题

  • <DataGrid x:Name="DataGrid1" AutoGenerateColumns="False" ItemsSource="{Binding}" IsReadOnly="False" >
                    <DataGrid.Columns>

                        //绑定只有只有两个值A,B,要求当是A时,字体为红色,怎么实现??
                        <DataGridTextColumn Header="状 态" Binding="{Binding AorB}"  />
                    </DataGrid.Columns>
                </DataGrid>
    2011年11月24日 7:52

答案

  • 两种方法,一种是DataTrigger,参考下面的代码:

    <DataGridTextColumn Binding="{Binding Path=..}" >   <DataGridTextColumn.ElementStyle>
         <Style TargetType="{x:Type TextBlock}">  
          <Setter Property="Foreground" Value="Green" />     <Style.Triggers>    
         <DataTrigger Binding="{Binding ..}" Value="1">           <Setter Property="Foreground" Value="Blue" />         </DataTrigger>          <DataTrigger Binding="{Binding ...}" Value="2">           <Setter Property="Background" Value="Red" />         </DataTrigger>                 </Style.Triggers>     </Style>   </DataGridTextColumn.ElementStyle>
     </DataGridTextColumn> 
    

    另一种是加入一个Converter,然后根据converter方法里面的value值去进行判断,然后设置颜色

     


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 WCF小Q 2011年11月25日 3:36
    2011年11月24日 15:56
    版主