【发布时间】:2020-08-05 17:06:40
【问题描述】:
我需要您的帮助我正在尝试在 xamarin 表单中制作以下 UI。我想要列表末尾的上传按钮或图像。我尝试将集合视图与网格项目布局一起使用。我可以显示这样的图像,但我无法在末尾添加上传图像,如下所示。我试图将上传图像/按钮放在集合视图的页脚中,但它出现在列表底部,而不是在最后一张图像的旁边。那么有没有任何机构可以帮助我或指导我实现这一目标? Sample UI
<CollectionView x:Name="imgcollection" Margin="5"
BackgroundColor="Transparent" MinimumHeightRequest="15" HeightRequest="150"
ItemsSource="{Binding ItemImages}"
>
<CollectionView.ItemsLayout>
<GridItemsLayout Orientation="Vertical"
Span="{OnIdiom Tablet='6',Phone='4'}" HorizontalItemSpacing="1"
VerticalItemSpacing="2" >
</GridItemsLayout>
</CollectionView.ItemsLayout>
<CollectionView.EmptyView>
<StackLayout >
<Image Source="picturemessage_2.png" Aspect="AspectFill"
HeightRequest="150" WidthRequest="150" HorizontalOptions="Start">
</Image>
</StackLayout>
</CollectionView.EmptyView>
<CollectionView.ItemTemplate>
<DataTemplate>
<ContentView Padding="5" Margin="30" HeightRequest="100" WidthRequest="150">
<AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Image x:Name="imgview" Source="{Binding .}" HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand" Aspect="AspectFill"
AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All"/>
<Image Source="moreoptionbtn.png" Aspect="AspectFill" IsVisible="{OnIdiom Tablet='True',Phone='False'}"
AbsoluteLayout.LayoutBounds="1,0.1,30,30"
AbsoluteLayout.LayoutFlags="PositionProportional"/>
</AbsoluteLayout>
</ContentView>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
C#
private List<ImageSource> itemImages;
public List<ImageSource> ItemImages
{
get { return itemImages; }
set { itemImages = value;
OnPropertyChanged("ItemImages");
}
}
public ImageSource defultImage { get; set; } = "picturemessage_2.png";
public bool Isadd { get; set; } = false;
//
void somefunction()
{
DetailPageViewModel.ItemImages.Add(picture);
DetailPageViewModel.ItemImages.OrderByDescending(s=>s);
var i = DetailPageViewModel.Isadd;
if (!i)
{
DetailPageViewModel.ItemImages.Add(defultImage);
DetailPageViewModel..Isadd = true;
}
}
【问题讨论】:
-
只需将上传图片设为您的 ItemsSource 中的最后一项
-
@Jason 我试过了,但最后没有显示,我也尝试订购列表,但每次上传图片都在第二个数字。我不知道为什么。
-
请贴出相关代码
-
@Jason 我更新了我的问题,请再次检查
-
首先,
OrderByDescending是一个返回有序列表的函数。不确定这是否是您的实际问题 - 但应该很容易检查您的数据并验证列表中的最后一项是否是您认为的。
标签: c# listview xamarin xamarin.forms collectionview