【问题标题】:How to write the Style for check box place in the GridCell UWP?如何在 GridCell UWP 中为复选框位置编写样式?
【发布时间】:2017-07-24 07:38:35
【问题描述】:

enter image description here

我试图通过将目标类型设置为复选框来编写放置在网格单元格中的复选框的样式,但它也将样式应用于过滤器复选框。任何人都可以建议我只为网格单元格复选框编写样式。 请找到上面附加的图片,我只为网格单元格中加载的复选框编写了样式,而不是应用于所有

我是这样试的

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

【问题讨论】:

  • 您可以发布一些您尝试过的代码吗? 并非所有问题都受益于包含代码。但是如果你的问题是你写的代码,你应该包括一些。但不要只是复制整个程序! stackoverflow.com/help/how-to-ask
  • 这很奇怪。我用你的代码在我身边测试。我这边没有任何影响。无论是cell中的checkBox还是filterControl中的checkBox,都没有红色背景。

标签: datagrid uwp styles uwp-xaml syncfusion


【解决方案1】:

您必须使用DataGridCellColumn 属性并检查其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>

【讨论】:

  • 嗨 Anjum,感谢您查看我的查询,您能否在 UWP 中分享此查询的建议..
  • OP 不是在谈论DataGrid。此外,唯一不支持&lt;Style.Triggers&gt;的UWP DataGridCommunity版本
【解决方案2】:

好的。 @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>

【讨论】:

  • HI Anjum ,在您提供的代码示例中,样式应用于单元格中的全部内容。但我的查询是仅将样式应用于复选框而不是整个单元格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-18
  • 2019-11-15
  • 2017-04-22
  • 1970-01-01
  • 2016-03-20
  • 2011-05-15
相关资源
最近更新 更多