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.
CShark/WpfApp1/UserControlRequin.xaml.cs

124 lines
3.7 KiB

using Business;
using Modèle;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp1
{
/// <summary>
/// Classe DescriptionWeGoEventArgs qui implémente EventArgs
/// Elle permet de créer un argument qui permet de transformer le content control de la main window en USerControlDescription après avoir cliquer sur le UserControlRequin
/// </summary>
public class DescriptionWeGoEventArgs : EventArgs
{
public Requin Requin { get; private set; }
public DescriptionWeGoEventArgs(Requin requin) => Requin = requin;
}
/// <summary>
/// Logique d'interaction pour UserControlRequin.xaml
/// </summary>
public partial class UserControlRequin : UserControl
{
public Manager Mgr => (Application.Current as App).LeManager;
public UserControlRequin()
{
InitializeComponent();
}
/// <summary>
/// Event Handler de DescriptionWeGoEventArgs
/// </summary>
public event EventHandler<DescriptionWeGoEventArgs> DescriptionWeGo;
//L'événement qui permet de passer à l'UserControlDescription
protected virtual void OnDescriptionWeGo(DescriptionWeGoEventArgs args)
=> DescriptionWeGo?.Invoke(this, args);
/// <summary>
/// Evénement qui est déclencher quand l'utilisateur clique sur l'userControl
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void UserControlReq_MouseDown(object sender, MouseButtonEventArgs e)
{
Mgr.SelectedRequin = requin;
if (type == UCrequinType.normal)
{
OnDescriptionWeGo(new DescriptionWeGoEventArgs(requin)); //Déclenche l'événement OnDescriptionWeGo
}
else if (type == UCrequinType.edit)
{
var descEdit = new DescriptionEdit { requin = requin, requinOld = Mgr.GetRequin(requin) }; //Ouvre la page DescriptionEdit
descEdit.ShowDialog();
}
else if (type == UCrequinType.add)
{
var descAdd = new DescriptionAdd { requin = requin }; //Ouvre la page DescriptionAdd
descAdd.ShowDialog();
}
}
private Requin _requin;
public Requin requin
{
get { return _requin; }
set {
_requin = value;
uptadeUi(_requin);
}
}
public UCrequinType type;
/// <summary>
/// Méthode qui permet de mettre à jour l'affichage de l'userControl
/// </summary>
/// <param name="requin"></param>
public void uptadeUi(Requin requin)
{
nameReq.Text = requin.Nom;
sciName.Text = requin.NomSci;
var url = "@" + requin.Photo;
//Test si l'image viens du dossier Image ou d'internet
if (requin.Photo.Contains("Images/"))
{
image.Source = new BitmapImage(new Uri(requin.Photo, UriKind.Relative));
}
else
{
var pathPhoto = @requin.Photo;
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(pathPhoto, UriKind.Absolute);
bitmap.EndInit();
image.Source = bitmap;
}
}
}
}