【问题标题】:CollectionView SelectedItem is not highlighted in Xamarin FormsCollectionView SelectedItem 在 Xamarin 表单中未突出显示
【发布时间】:2020-05-25 18:24:40
【问题描述】:

我试图突出显示 Xamarin Forms CollectionView 项目,但它似乎没有突出显示。在调试时,我发现如果我删除 SwipeView Gesture 事件,它会按预期工作。此外,在当前代码中,选择项已更改,但颜色未更改。如何突出显示所选项目?

<CollectionView ItemsSource="{Binding SomeList}" 
SelectedItem="{Binding CurrentItem}" SelectionMode="Single" x:Name="itemView">
<CollectionView.ItemsLayout>
     <GridItemsLayout Orientation="Vertical" Span="1"/>
  </CollectionView.ItemsLayout>
  <CollectionView.ItemTemplate>
    <DataTemplate>
    <SwipeView>
     <SwipeView.GestureRecognizers>
         <SwipeGestureRecognizer Direction="Right"
          Command="{Binding BindingContext.SwipGestureCommand, Source={x:Reference itemView}}"
                                                            CommandParameter="right"/>
   </SwipeView.GestureRecognizers>
   <StackLayout Orientation="Vertical" Padding="5">
    <VisualStateManager.VisualStateGroups>
         <VisualStateGroup Name="CommonStates">
        <VisualState Name="Normal" />
        <VisualState Name="Selected">
             <VisualState.Setters>
                     <Setter Property="BackgroundColor" Value="Yellow" />
             </VisualState.Setters>
       </VisualState>
      </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
          <Label LineBreakMode="WordWrap"  Text="{Binding SomeText}"/>
        </StackLayout>
      </SwipeView>
    </DataTemplate>
  </CollectionView.ItemTemplate>
</CollectionView>

如何高亮选中的collectionview项?

【问题讨论】:

    标签: c# xamarin.forms collectionview


    【解决方案1】:

    请将Xamarin.Forms版本升级到4.6及以上,然后修改你的代码如下代码,设置swip背景颜色为白色,并添加VisualStateManager.VisualStateGroups进行swip。

     <CollectionView
                x:Name="itemView"
                ItemsSource="{Binding SomeList}"
                SelectionMode="Single">
                <CollectionView.ItemsLayout>
                    <GridItemsLayout Orientation="Vertical" Span="1" />
                </CollectionView.ItemsLayout>
                <CollectionView.ItemTemplate>
                    <DataTemplate>
                        <SwipeView BackgroundColor="White">
                            <SwipeView.GestureRecognizers>
                                <SwipeGestureRecognizer
                                    Command="{Binding BindingContext.SwipGestureCommand, Source={x:Reference itemView}}"
                                    CommandParameter="right"
                                    Direction="Right" />
                            </SwipeView.GestureRecognizers>
                            <StackLayout Padding="5" Orientation="Vertical">
                                <Label LineBreakMode="WordWrap" Text="{Binding SomeText}" />
    
                            </StackLayout>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup Name="CommonStates">
                                    <VisualState Name="Normal" />
                                    <VisualState Name="Selected">
                                        <VisualState.Setters>
                                            <Setter Property="BackgroundColor" Value="Yellow" />
                                        </VisualState.Setters>
                                    </VisualState>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                        </SwipeView>
                    </DataTemplate>
                </CollectionView.ItemTemplate>
            </CollectionView>
    

    【讨论】:

    • 这太棒了 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2014-05-02
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多