programing

wpf 데이터그램 대체 행 컬러링

golfzon 2023. 4. 19. 23:46
반응형

wpf 데이터그램 대체 행 컬러링

나는 이 방법을 시도했다.운이 없으면..

 <Style TargetType="{x:Type DataGridRow}">
  <Style.Triggers>
      <Trigger Property="ItemsControl.AlternationIndex" Value="0">
          <Setter Property="Foreground" Value="Red" />
     </Trigger>
  </Style.Triggers>
</Style>

행 인덱스를 얻을 수 있는 방법이 있습니까?난 시도도 해봤어

<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
    <Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>

마지막으로 대체 행 색상을 일반적으로 설정하게 되었습니다.

<Style TargetType="{x:Type DataGrid}">
    <Setter Property="Background" Value="#FFF" />
    <Setter Property="AlternationCount" Value="2" />
</Style>

 <Style TargetType="{x:Type DataGridRow}">
    <Style.Triggers>
        <Trigger Property="ItemsControl.AlternationIndex" Value="0">
            <Setter Property="Background" Value="#CCC"></Setter>
        </Trigger>
        <Trigger Property="ItemsControl.AlternationIndex" Value="1">
            <Setter Property="Background" Value="#EEE"></Setter>
        </Trigger>
    </Style.Triggers>
</Style>

아직 설정하지 않은 경우 DataGrid의 AlternationCount 속성을 설정해야 합니다.

<DataGrid AlternationCount="2"
          ... />

또한 전경 속성이 DataGridRow의 컨트롤에 사용되는지 여부를 확인해야 합니다.대체 정보를 테스트하도록 백그라운드 속성을 설정하십시오.

교대 배경을 다음과 같이 설정해 보십시오.

  AlternationCount="2" AlternatingRowBackground="Bisque"

이거 드셔보세요

  <DataGrid AlternationCount="2"
            AlternatingRowBackground="Salmon" ........

마지막으로 Robin Maben 솔루션과 Th3G33k 솔루션을 조합하여 사용했습니다.어떤 조건이 충족되면 대체 색상을 자신의 것으로 덮어쓰고 싶기 때문입니다.둘 다 고마워.

<DataGrid x:Name="gridCustomerOrderItems" HorizontalAlignment="Stretch" 
                  VerticalAlignment="Stretch" AutoGenerateColumns="False"
                  AlternationCount="2"
                  IsReadOnly="True" CanUserReorderColumns="True"
                      ScrollViewer.CanContentScroll="True"
                      ScrollViewer.VerticalScrollBarVisibility="Auto"
                      ScrollViewer.HorizontalScrollBarVisibility="Auto">

                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <Style.Triggers>
                            <!--first alteraniting colour-->
                            <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                                <Setter Property="Background" Value="#EEE"></Setter>
                            </Trigger>
                            <!--then override with my own colour-->
                            <DataTrigger Binding="{Binding InvoiceSet}" Value="True">
                                <Setter Property="Background" Value="Green"></Setter>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </DataGrid.RowStyle>

언급URL : https://stackoverflow.com/questions/4792628/wpf-datagrid-alternate-row-coloring

반응형