Как написать стиль для флажка в 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>

person Bala    schedule 04.03.2017    source источник
comment
Не могли бы вы опубликовать код того, что вы пробовали? Не во всех вопросах полезно включать код. Но если ваша проблема связана с написанным вами кодом, вы должны включить его. Но не копируйте всю программу целиком! stackoverflow.com/help/how-to-ask   -  person Xander Luciano    schedule 04.03.2017
comment
Это очень странно. Я использовал ваш код для тестирования на своей стороне. На моей стороне нет никаких эффектов. Неважно, checkBox в ячейке или в filterControl, все они не имеют красного фона.   -  person Timo    schedule 06.03.2017


Ответы (2)


Вы должны использовать свойство 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>
person AnjumSKhan    schedule 04.03.2017
comment
Привет, Анджум. Спасибо, что рассмотрели мой запрос. Не могли бы вы поделиться предложением по этому запросу в UWP.. - person Bala; 06.03.2017
comment
ОП не говорит о DataGrid. Кроме того, единственная UWP DataGrid — это версия Community, которая не не поддерживает <Style.Triggers> - person MickyD; 29.12.2018

В порядке. @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>

введите здесь описание изображения

person Xie Steven    schedule 09.03.2017
comment
HI Anjum, В предоставленном вами образце кода стиль применяется ко всему содержимому в ячейке. Но мой запрос заключается в применении стиля только для флажка, а не для всей ячейки. - person Bala; 28.03.2017