이 글에서는 주로 WPF 컬렉션 제어 구분 기호 ItemsControl 구분 기호를 자세히 소개합니다. 관심 있는 친구들이 참조할 수 있습니다.
은 WPF 컬렉션 제어 사이에 구분 기호 스타일을 삽입하는 경우가 많습니다. 각 컬렉션 항목이 있지만 WPF의 ItemsControl에는 관련 기능이 직접 구현되어 있지 않으므로 국가를 구하기 위한 곡선만 고려할 수 있습니다. 연구 후에 아마도 다음 두 가지 구현 방법을 생각했을 것입니다.
먼저 ItemsControl의 데이터 템플릿을 다음과 같이 작성합니다.
<ItemsControl ItemsSource="{Binding Source}" BorderThickness="1" BorderBrush="Blue" VerticalAlignment="Stretch"> <ItemsControl.ItemTemplate> <DataTemplate> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border Name="Bd" Grid.Row="0" Height="1" Background="Red" /> <TextBlock Grid.Row="1" Text="{Binding}" /> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>
Bd라는 이름의 테두리입니다. 구분 기호는 각 항목의 헤더에 표시됩니다. 이제 우리의 목표는 첫 번째 항목의 구분 기호를 숨기는 것입니다. 이렇게 하면 항목 사이에 구분 기호가 있는 목적이 달성됩니다.
첫 번째 구현 방법은 컬렉션 항목을 사용하여 PreviousData를 전방 바인딩하는 가장 간단한 방법입니다. 이는 네 가지 바인딩 방법 중 하나이며 아마도 가장 일반적으로 사용되지 않는 방법일 것입니다. , 그러나 이때 유용하게 사용되는 코드는 다음과 같습니다.
<DataTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}"> <Setter TargetName="Bd" Property="Visibility" Value="Collapsed" /> </DataTrigger> </DataTemplate.Triggers>
항목의 이전 항목이 비어 있으면 구분 기호를 숨길 수 있습니다. 간단한 코드 한 줄로 완료되었습니다. 그러나 이 구현 방법의 한 가지 단점은 바인딩된 데이터 소스의 앞에 데이터를 추가하기 위해 Insert 메서드를 사용하는 경우 큐의 끝이나 큐의 끝에 데이터를 추가하면 구분 기호가 없는 항목이 두 개 이상 나타난다는 것입니다. 대기열 중간에는 대기열이 없습니다. 이 문제가 발생합니다.
두 번째 구현은 ItemsControl의 AlternationCount 및 AlternationIndex 속성은 컬렉션 항목의 인덱스 번호를 표시한 다음 인덱스 번호가 0인 항목의 구분 기호를 숨깁니다. 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.
먼저 AlternationCount를 ItemsControl에 있는 데이터 소스의 Count 속성에 바인딩한 다음 ItemsControl의 AlternationIndex 속성이 컬렉션 데이터 소스의 인덱스 번호를 지정하려면 트리거에 논리를 작성하세요.
<Border Name="Bd" Grid.Row="0" Height="1" Background="Red"> <Border.Style> <Style TargetType="{x:Type Border}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=(ItemsControl.AlternationIndex), RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}" Value="0"> <Setter Property="Visibility" Value="Collapsed" /> </DataTrigger> </Style.Triggers> </Style> </Border.Style> </Border>
트리거는 인덱스 번호가 0일 때 숨겨지도록 결정합니다Border, 이 방법은 코드의 양이 많지 않고, 팀의 선두에 삽입하든, 꼬리에 삽입하든 이 기능을 확실히 구현할 수 있다는 장점이 있지만 AlternationCount 및 AlternationIndex 속성의 원래 의미는 인터레이스 색상 변경 등의 기능을 구현하는 것이므로 이 기능이 이때 사용됩니다. 컬렉션이 구분 기호와 대체 선 스타일 기능을 모두 구현하려는 경우 추가 변환기를 추가해야 할 수도 있지만 변환기의 내용도 나머지를 찾아 이전 기능을 복원할 수 있습니다.
위 내용은 WPF 컬렉션 제어는 구분 기호(ItemsControl Separator)를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!