Xamarin.Forms 禁用 ListView 中的项目

Xamarin.Forms disable item in ListView

是否有内置方法可以禁用/灰显 ListView 中的 ViewCell?我一直在查看文档,但找不到任何东西。这是我目前所拥有的。

 <ListView x:Name="lvNotes" ItemSelected="OnSelection">
          <ListView.ItemTemplate>
            <DataTemplate>
              <TextCell Text="{Binding Object.Name}" Detail="{Binding Object.Subject}"/>
            </DataTemplate>
          </ListView.ItemTemplate>
        </ListView>

我认为您会 DataTemplateSelector for Xamarin.Forms 实现此行为。从这个博客 post:

Supposed you want to put a list of items into a ListView but use a different DataTemplate for some of the items? In Microsoft XAML, you could set the ItemTemplateSelector property to a custom DataTemplateSelector and you’d be all set

希望对你有帮助。

要更改背景,您可以轻松使用 Triggers

这是您的 listView 示例,但带有触发器。当 属性 Object.IsActive 设置为 false 时,网格背景将变为灰色。

    <ListView x:Name="lvNotes" ItemSelected="OnSelection">
      <ListView.ItemTemplate>
        <DataTemplate>
            <Grid BackgroundColor="Green">
                <TextCell Text="{Binding Object.Name}" Detail="{Binding Object.Subject}"/>
                <Grid.Triggers>
                    <DataTrigger TargetType="Grid" Binding="{Binding Object.IsActive}" Value="False">
                        <Setter Property="BackgroundColor" Value="Gray"/>
                    </DataTrigger>
                </Grid.Triggers>
            </Grid>
        </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>