我正在试图隐藏最后一个Grid列。我试图用DataTrigger来实现它,我的触发器是这样的:
<ResourceDictionary>
<Style x:Key="HideLastVerticalLine" TargetType="BoxView">
<Style.Triggers>
<DataTrigger
Binding="{Binding Items, Path=Items.LastOrDefault}"
TargetType="BoxView"
Value="{Binding Items.Length}">
<Setter Property="IsVisible" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
<BoxView Style="{StaticResource HideLastVerticalLine}" Grid.Column="1" HeightRequest="100" WidthRequest="1" BackgroundColor="Black"/>我将这个DataTrigger应用于一个BoxView,它包含一个垂直行分隔符(我希望使用Trim()来删除最后一行分隔符)。
我该怎么做呢?
发布于 2019-08-26 07:14:26
您可以使用DataTemplateSelector来实现这一点。
样品为这里。
创建两个DataTemplates,一个用于LastViewCell,另一个用于其他ViewCells
public class PersonDataTemplateSelector : DataTemplateSelector
{
public DataTemplate NormalTemplate { get; set; }
public DataTemplate LastCellTemplate { get; set; }
protected override DataTemplate OnSelectTemplate (object item, BindableObject container)
{
var lastItem = Items.LastOrDefault();
return lastItem = item ? LastCellTemplate : NormalTemplate;
}
}通过检查项目是否是最后一项,选择使用哪个DataTemplate。
发布于 2021-10-29 05:18:17
int index = 0;
foreach (var item in list) // here updating last element of list islast =true
{
item.IsLast = (index == list.Count - 1);
index++;
}https://stackoverflow.com/questions/57622772
复制相似问题