![](/img/trans.png)
[英]Set SwipeCardView SelectedItem to a variable in xamarin form
[英]Xamarin empty SwipeCardView when launching app
我正在尝试制作类似 Tinder 的应用程序。 我找到了一个 nuget 包 (MLToolkit.Forms.SwipeCardView) 来创建可滑动的卡片。 我尝试使用假数据设置 UserProfile 类来创建一些测试卡并查看滑动是否正常工作。
问题是,SwipeCardView 没有出现在我的应用程序中......
主页.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TinderSwipeTest.MainPage"
xmlns:SwipeCardView="clr-namespace:MLToolkit.Forms.SwipeCardView;assembly=MLToolkit.Forms.SwipeCardView">
<StackLayout>
<Frame BackgroundColor="#2196F3" Padding="24" CornerRadius="0">
<Label Text="Welcome to Xamarin.Forms!" HorizontalTextAlignment="Center" TextColor="White" FontSize="36"/>
</Frame>
<SwipeCardView:SwipeCardView
x:Name="SwipeView1" ItemsSource="{Binding Profiles}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
Padding="10" SupportedDraggingDirections="Left,Right,Up">
<SwipeCardView:SwipeCardView.ItemTemplate>
<DataTemplate>
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Frame CornerRadius="10" Padding="8" HorizontalOptions="FillAndExpand" VerticalOptions="EndAndExpand">
<AbsoluteLayout>
<Image Source="{Binding Photo}" Aspect="AspectFill" AbsoluteLayout.LayoutBounds="0.5,0.5,1,1" AbsoluteLayout.LayoutFlags="All"></Image>
</AbsoluteLayout>
</Frame>
</StackLayout>
</DataTemplate>
</SwipeCardView:SwipeCardView.ItemTemplate>
</SwipeCardView:SwipeCardView>
</StackLayout>
</ContentPage>
主页.xaml.cs
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace TinderSwipeTest
{
public partial class MainPage : ContentPage
{
public ObservableCollection<UserProfile> _Profile = new ObservableCollection<UserProfile>();
public MainPage()
{
InitializeComponent();
CardBinding();
BindingContext = this;
}
public void CardBinding()
{
_Profile.Add(new UserProfile() { Name = "Joconde", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde2", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde3", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde4", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde5", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde6", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde7", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde8", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde9", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde10", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde11", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde12", Age = "115", Photo = "joconde.jpg" });
_Profile.Add(new UserProfile() { Name = "Joconde13", Age = "115", Photo = "joconde.jpg" });
}
public ObservableCollection<UserProfile> Profile
{
get => _Profile;
set
{
_Profile = value;
}
}
public class UserProfile
{
public string Name { get; set; }
public string Age { get; set; }
public string Photo { get; set; }
}
}
}
来自共享代码: ItemsSource="{Binding Profiles}"
,因此您需要BindingContext
的Profiles
属性。
您可以修改代码如下:
public ObservableCollection<UserProfile> Profiles = new ObservableCollection<UserProfile>();
...
public void CardBinding()
{
Profiles.Add(new UserProfile() { Name = "Joconde", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde2", Age = "115", Photo = "joconde.jpg" });
Profile.Add(new UserProfile() { Name = "Joconde3", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde4", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde5", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde6", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde7", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde8", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde9", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde10", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde11", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde12", Age = "115", Photo = "joconde.jpg" });
Profiles.Add(new UserProfile() { Name = "Joconde13", Age = "115", Photo = "joconde.jpg" });
}
...
我只是使用了“{Binding Profiles}”而不是“{Binding Profile}”我的坏
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.