You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.1 KiB
80 lines
2.1 KiB
using System.Windows.Input;
|
|
|
|
namespace ex_CustomContentView;
|
|
|
|
public partial class MainPage : ContentPage
|
|
{
|
|
public MainPage()
|
|
{
|
|
InitializeComponent();
|
|
InitCommands();
|
|
BindingContext = this;
|
|
}
|
|
|
|
public Artist Artist1 { get; set; }
|
|
= new Artist
|
|
{
|
|
Name = "Delphine Joussein",
|
|
Instrument = "flute, fx, voice",
|
|
Picture = "joussein.png"
|
|
};
|
|
|
|
public Artist Artist2 { get; set; }
|
|
= new Artist
|
|
{
|
|
Name = "Rafaëlle Rinaudo",
|
|
Instrument = "electric harp",
|
|
Picture = "rinaudo.png"
|
|
};
|
|
|
|
public Artist Artist3 { get; set; }
|
|
= new Artist
|
|
{
|
|
Name = "Blanche Lafuente",
|
|
Instrument = "drums, drum pad",
|
|
Picture = "lafuente.png"
|
|
};
|
|
|
|
public Color MainColor { get; set; } = Colors.DarkSalmon;
|
|
|
|
void OnNextClicked(object sender, EventArgs e)
|
|
{
|
|
DisplayAlert("Next", $"You have clicked on Next of an {sender.GetType().Name}", "Ok");
|
|
}
|
|
|
|
void OnInfoClicked(object sender, EventArgs e)
|
|
{
|
|
DisplayAlert("Info", $"You have clicked on Information of a {sender.GetType().Name}, whose Title is {(sender as MyAvatarView)?.Title}", "Ok");
|
|
}
|
|
|
|
int colorIndex=0;
|
|
Color[] colors = { Colors.DarkKhaki, Colors.DarkGoldenrod, Colors.DarkOliveGreen, Colors.DarkOrchid, Colors.DarkSeaGreen, Colors.DarkTurquoise, Colors.DarkViolet, Colors.DarkSalmon };
|
|
private void OnTapped(object sender, TappedEventArgs e)
|
|
{
|
|
if(sender is not MyAvatarView) return;
|
|
(sender as MyAvatarView)!.Color = colors[colorIndex];
|
|
colorIndex++;
|
|
colorIndex %= colors.Length;
|
|
}
|
|
|
|
public ICommand MyNextCommand { get; set; }
|
|
public ICommand MyInfoCommand { get; set; }
|
|
public ICommand MyTapCommand { get; set; }
|
|
|
|
private void InitCommands()
|
|
{
|
|
MyNextCommand = new Command<object>(
|
|
str => DisplayAlert("Next2", $"This view is related to {str}", "Ok")
|
|
);
|
|
|
|
MyInfoCommand = new Command<Artist>(
|
|
artist => DisplayAlert("Info2", $"This view is related to {artist.Name}", "Ok")
|
|
);
|
|
|
|
MyTapCommand = new Command<MyAvatarView>(
|
|
av => DisplayAlert("Tap", $"This view is related to {av.Title}", "Ok")
|
|
);
|
|
}
|
|
}
|
|
|