2017-03-04 40 views
0

enter image description here如何在GridCell UWP中为复选框位置写入样式?

我试图写一个通过将目标类型复选框放在网格单元格复选框的风格,但它也适用风格进行过滤复选框。任何人都可以建议我只写格子单元格的复选框。 随函附上上面的图片,我有写一个风格只在网格单元,而不是适用于所有

我尝试了用这种方式

<Page.Resources> 
     <Style TargetType="CheckBox"> 
      <Setter Property="Background" Value="Red"/> 
     </Style> 
    </Page.Resources> 
    <Page.DataContext> 
     <local:ViewModel/> 
    </Page.DataContext> 
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <my:SfDataGrid ItemsSource="{Binding Orders}" AllowFiltering="True" /> 
    </Grid> 
+0

你能发布,请你尝试了一些什么码? *并非所有问题都能从代码中受益。但是,如果你的问题是你写的代码,你应该包括一些。但不要只复制你的整个程序!* http://stackoverflow.com/help/how-to-ask –

+0

这很奇怪。我用你的代码在我身边测试。我身边没有任何影响。无论单元格中还是filterControl中的checkBox,它们都没有红色背景。 – Skyblue

回答

0

你必须使用Column属性加载的复选框的DataGridCell并检查其值DisplayIndex值并编写一个DataTrigger

样品的方法:

<DataGrid ...> 
     <DataGrid.Resources> 
      <Style TargetType="CheckBox"> 
       <Setter Property="Background" Value="Green"/> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Column.DisplayIndex, RelativeSource={RelativeSource AncestorType=DataGridCell, Mode=FindAncestor}}" Value="0"> 
         <Setter Property="Background" Value="Red"/> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.Resources> 
    </DataGrid> 
+0

您好Anjum,感谢您查看我的查询,请您分享这个查询在UWP的建议。 – James

0

确定。 @BalamuruganR我为你做了一个简单的代码示例。使用GridTemplateColumn并为您的自定义样式指定一个“x:Key”。请检查下面的代码示例:

<Page.Resources> 
    <Style x:Key="CheckBoxStyle1" TargetType="CheckBox"> 
     <Setter Property="Background" Value="Red" /> 
    </Style> 
    <DataTemplate x:Key="cellTemplate"> 
     <CheckBox Content="DataGrid" IsChecked="{Binding Flag}" Style="{StaticResource CheckBoxStyle1}"></CheckBox> 
    </DataTemplate> 
</Page.Resources> 

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

    <syncfusion:SfDataGrid x:Name="sfGrid" Grid.Column="0" 
           AllowGrouping="True" 
           AutoExpandGroups="True" 
           ShowGroupDropArea="True" 
           AllowEditing="True" 
           AllowFiltering="True" 
           AutoGenerateColumns="False" 
           ItemsSource="{Binding UserDetails}"> 
     <syncfusion:SfDataGrid.Columns> 
      <syncfusion:GridTextColumn MappingName="UserId" /> 
      <syncfusion:GridTextColumn MappingName="Name" /> 
      <syncfusion:GridDateTimeColumn MappingName="DateofBirth" /> 
      <syncfusion:GridNumericColumn MappingName="ContactNo" /> 
      <syncfusion:GridTemplateColumn MappingName="Flag" CellTemplate="{StaticResource cellTemplate}" /> 
     </syncfusion:SfDataGrid.Columns> 
    </syncfusion:SfDataGrid> 
</Grid> 

enter image description here

+0

HI Anjum,在您提供的代码示例中,样式应用于单元格中的整个内容。但我的查询是将该样式仅应用于复选框而不是整个单元格。 – James