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>
是否有内置方法可以禁用/灰显 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>