Я хотел бы отобразить 3 элемента одновременно в виде карусели на формах xamarin.
Я использую пользовательский CarouselView, который можно найти здесь: https://github.com/AndreiMisiukevich/CardView.
Тем не менее, он отображает только 1 элемент на просмотр.
Вот пример того, что я сделал.
public class Example : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _titulo;
public string Titulo
{
get
{
return _titulo;
}
set
{
_titulo = value;
OnPropertyChanged(nameof(Titulo));
}
}
private Color _cor;
public Color Cor
{
get
{
return _cor;
}
set
{
_cor = value;
OnPropertyChanged(nameof(Cor));
}
}
public Example(string a, Color b)
{
Titulo = a;
Cor = b;
}
#region INotifyPropertyChanged Implementation
void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged == null)
return;
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
public class TesteViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private ObservableCollection<Example> _fonte;
public ObservableCollection<Example> Fonte
{
get
{
return _fonte;
}
set
{
_fonte = value;
OnPropertyChanged(nameof(Fonte));
}
}
public TesteViewModel()
{
Fonte = new ObservableCollection<Example>()
{
new Example("Gratidão", Color.Red),
new Example("Vitórias", Color.Green),
new Example("Objectivos do ano", Color.Blue)
};
}
#region INotifyPropertyChanged Implementation
void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged == null)
return;
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class teste : ContentPage
{
public teste()
{
BindingContext = new TesteViewModel();
InitializeComponent();
carrouusel.SetBinding(CardsView.ItemsSourceProperty, nameof(TesteViewModel.Fonte));
}
}
<ContentPage.Content>
<StackLayout>
<card:CarouselView x:Name="carrouusel" VerticalOptions="Start">
<card:CarouselView.ItemTemplate>
<DataTemplate>
<ContentView>
<Frame HeightRequest="100" WidthRequest="200" Padding="0" HasShadow="false" IsClippedToBounds="true" CornerRadius="0" BackgroundColor="{Binding Cor}">
<Label Text="{Binding Titulo}" TextColor="Black"/>
</Frame>
</ContentView>
</DataTemplate>
</card:CarouselView.ItemTemplate>
</card:CarouselView>
</StackLayout>
</ContentPage.Content>
Я хочу отображать 3 элемента для каждого просмотра рядом. Как показано на этом изображении: https://ibb.co/nzphmFw