Как изменить цвет фона GroupDisplayBinding в формах Xamarin? - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь изменить только цвет фона GroupDisplayBinding, который находится внутри представления списка, не затрагивая список. Как вы можете видеть на изображении, фон светло-серый, также я хочу изменить его поле, если это возможно.

enter image description here

<ListView
                IsVisible="{Binding ShowList}"
                IsGroupingEnabled="True"
                HasUnevenRows="True"
                SelectionMode="None"
                SeparatorVisibility="None"
                BackgroundColor="#ffffff"
                GroupDisplayBinding="{Binding GroupName}"
                GroupShortNameBinding="{Binding ShortName}"
                ItemsSource="{Binding List}">
                <ListView.Behaviors>
                    <behaviors:EventToCommandBehavior Command="{Binding ListItemTappedCommand}"
                                                      EventName="ItemTapped" />
                </ListView.Behaviors>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <Frame HasShadow="False"
                                   CornerRadius="0"
                                   Margin="2"
                                   Padding="10"
                                   BackgroundColor="#ffffff"
                                   BorderColor="#000000">
                                <StackLayout Orientation="Horizontal"
                                             Spacing="0"
                                             Padding="0"
                                             Margin="0">
                                    <Label Text="{Binding Name}"
                                           HorizontalOptions="StartAndExpand"
                                           Style="{StaticResource ListTextStyle}"
                                           TextColor="#2278B5"/>
                                    <Label Text=">"
                                           Style="{StaticResource ListTextStyle}"
                                           TextColor="#2278B5"
                                           HorizontalOptions="End"
                                           FontSize="24" />
                                </StackLayout>
                            </Frame>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
 </ListView>

1 Ответ

1 голос
/ 06 марта 2020

Мы могли бы сделать еще один шаг и реализовать собственную настраиваемую ячейку заголовка с хорошим фоновым цветом.

Демонстрация очень проста и содержит только метку, которая привязывается к GroupName, и я помещаю это внутри StackLayout с небольшим количеством пользовательских отступов и цветом фона.

 <ListView IsVisible="{Binding ShowList}"
            IsGroupingEnabled="True"
            HasUnevenRows="True"
            SelectionMode="None"
            SeparatorVisibility="None"
            BackgroundColor="#ffffff"
            GroupDisplayBinding="{Binding GroupName}"
            GroupShortNameBinding="{Binding ShortName}"
            ItemsSource="{Binding List}">

         // set the appearance of Header here as you want 
        <ListView.GroupHeaderTemplate>
            <DataTemplate>
                <ViewCell Height="25">
                    <StackLayout VerticalOptions="FillAndExpand" Padding="5"  BackgroundColor="#3498DB">
                        <Label Text="{Binding GroupName}"  TextColor="White" Margin="10" VerticalOptions="Center"/>
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.GroupHeaderTemplate>

        <ListView.ItemTemplate>
            //...
        </ListView.ItemTemplate>
    </ListView>
...