Ajouter groupe marche pnt de merde

C#
Tony Fages 2 years ago
parent 84585d29b7
commit 3c52666e6e

@ -16,12 +16,16 @@
<VerticalStackLayout> <VerticalStackLayout>
<ScrollView> <ScrollView>
<Grid> <Grid >
<!-- Séparation de la page --> <!-- Séparation de la page -->
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" /> <ColumnDefinition Width="1*" />
<ColumnDefinition Width="10*" /> <ColumnDefinition Width="10*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Grid.Column="0" Height="2*" />
<RowDefinition Grid.Column="0" Height="3*" />
</Grid.RowDefinitions>
@ -29,20 +33,12 @@
<!-- Première colonne --> <!-- Première colonne -->
<ScrollView Grid.Column="0" BackgroundColor="LightGrey"> <ScrollView >
<StackLayout x:Name="ButtonStackLayout"> <StackLayout x:Name="ButtonStackLayout" BindingContext="{Binding mgr.Evenement}">
<Button Text="test"
VerticalOptions="Center"
HorizontalOptions="Center"/>
<Button Text="test"
VerticalOptions="Center"
HorizontalOptions="Center"/>
<Button Text="test"
VerticalOptions="Center"
HorizontalOptions="Center"/>
</StackLayout> </StackLayout>
</ScrollView> </ScrollView>
<Button Text="Test" BackgroundColor="Green" Grid.Column="0" Grid.Row="1" HeightRequest="50" Clicked="Button_Clicked"/>
<!-- Deuxième colonne --> <!-- Deuxième colonne -->
<Grid Grid.Column="1"> <Grid Grid.Column="1">

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Diagnostics;
using Microsoft.Maui.Controls; using Microsoft.Maui.Controls;
using Microsoft.Maui.Platform; using Microsoft.Maui.Platform;
using Microsoft.VisualBasic; using Microsoft.VisualBasic;
@ -12,18 +13,44 @@ namespace ParionsCuite;
public partial class MainPage : ContentPage public partial class MainPage : ContentPage
{ {
public Manageur mgr => (App.Current as App).MyManager;
public MainPage() public MainPage()
{ {
InitializeComponent(); InitializeComponent();
this.BindingContext = this; this.BindingContext = this;
} mgr.EvenementAdded += OnEvenementAdded;
public void VueInfo(object sender, EventArgs e) }
private void OnEvenementAdded(Evenement evenement)
{
// Logique à exécuter lorsque un événement est ajouté
// Par exemple : affichez le nom de l'événement dans la console
Debug.WriteLine("Événement ajoutéz : " + evenement.Nom);
Button newButton = new Button
{
Text = evenement.Nom,
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center
};
// Ajouter le bouton au ButtonStackLayout
ButtonStackLayout.Children.Add(newButton); ;
}
public void test(object sender, EventArgs e)
{ {
//changervue Debug.WriteLine("Taille liste Evenement = " + mgr.Evenement.Count);
foreach(Evenement evenement in mgr.Evenement)
{
Debug.Write(evenement);
}
} }
public void Button_Clicked(object sender, EventArgs e) public void Button_Clicked(object sender, EventArgs e)
{ {

@ -1,7 +1,9 @@
using ParionsCuite.Views.Invite; using ParionsCuite.Views.Invite;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization; using System.Runtime.Serialization;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -9,8 +11,12 @@ using System.Threading.Tasks;
namespace ParionsCuite.Modeles namespace ParionsCuite.Modeles
{ {
[DataContract] [DataContract]
public class Evenement public class Evenement : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler? PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
/* Déclaration */ /* Déclaration */
[DataMember] [DataMember]
public string Nom { get; private set; } public string Nom { get; private set; }

@ -2,7 +2,9 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -13,7 +15,33 @@ namespace ParionsCuite.Modeles
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
public ObservableCollection<Evenement> Evenement { get; private set; } public event Action<Evenement> EvenementAdded;
private ObservableCollection<Evenement> evenement;
void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public ObservableCollection<Evenement> Evenement
{
get { return evenement; }
set
{
if (evenement != value)
{
evenement = value;
OnPropertyChanged();
OnEvenementAdded(value.LastOrDefault()); // Appel de la fonction après ajout d'un événement
}
}
}
private void OnEvenementAdded(Evenement evenement)
{
// Logique à exécuter lorsque un événement est ajouté
// Par exemple : affichez le nom de l'événement dans la console
Debug.WriteLine("Événement ajouté : ");
}
public List<Inviter> Invites { get; set; } public List<Inviter> Invites { get; set; }
public IPersistanceManager Persistance { get; set; } public IPersistanceManager Persistance { get; set; }
@ -37,13 +65,10 @@ namespace ParionsCuite.Modeles
public bool Ajout_evenement(Evenement ev) public bool Ajout_evenement(Evenement ev)
{ {
Evenement.Add(ev); Evenement.Add(ev);
foreach (Evenement e in Evenement) OnPropertyChanged(nameof(Evenement));
{ EvenementAdded?.Invoke(ev);
if (e == ev) return true;
return true;
}
return false;
} }
public bool Supprimer_evenement(Evenement ev) public bool Supprimer_evenement(Evenement ev)

@ -7,7 +7,7 @@ namespace ParionsCuite.Views;
public partial class Groupe : ContentView public partial class Groupe : ContentView
{ {
public Manageur mgr = new Manageur(); public Manageur mgr => (App.Current as App).MyManager;
public ObservableCollection<Evenement> Evenements { get; set; } = new ObservableCollection<Evenement>(); public ObservableCollection<Evenement> Evenements { get; set; } = new ObservableCollection<Evenement>();
public Groupe() public Groupe()

Loading…
Cancel
Save