Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

2 février 2014 7 02 /02 /février /2014 01:30

A utiliser dans une application WPF/Xaml .Collection qui permet d’avoir des notifications de changements (mise à jour de l’interface utilisateur avec le binding)

 

MainPage.xaml.cs

   public ObservableCollection<Client> clients { get; set; }

 

        public MainWindow()

        {

            InitializeComponent();

 

            clients = new ObservableCollection<Client>{

                new Client{ Name="Bellin Marie",Email="bellinmarie@live.com"},

                new Client{ Name="Dupond Paul",Email="dupondp30@live.com"},

                new Client{ Name="Bidule luc",Email="bluc10@msn.com"}

            };

 

            listBox1.ItemsSource = clients;

        }

 

        private void Button_Click(object sender, RoutedEventArgs e)

        {

            clients[0].Name = "Bellin Laura";

            clients.Add(new Client { Name = "Orea Lucie", Email = "orea135@live.com" });

        }  

 

La classe Client .Ne pas oublier d’implémenter INotifyPropertyChanged, sans cela les modifications au niveau des éléments ne seront pas répercutées.

public class Client :INotifyPropertyChanged

    {

        private string _name;

        private string _email;

 

        public string Name

        {

            get { return _name; }

            set

            {

                _name = value;

                this.OnPropertyChanged("Name");

            }

        }

        public string Email

        {

            get { return _email; }

            set

            {

                _email = value;

                this.OnPropertyChanged("Email");

            }

        }

 

        public event PropertyChangedEventHandler PropertyChanged;

 

        public void OnPropertyChanged(string propertyName)

        {

            if (this.PropertyChanged != null)

            {

                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

            }

        }

 

    }

La listBox

<Button Content="Button" HorizontalAlignment="Left" Margin="122,63,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>

        <ListBox Name="listBox1" HorizontalAlignment="Left" Height="100" Margin="10,219,0,0" VerticalAlignment="Top" Width="497" >

            <ListBox.ItemTemplate>

                <DataTemplate>

                    <StackPanel Orientation="Horizontal">

                        <TextBlock Text="{Binding Name}" Width="300"/>

                        <TextBlock Text="{Binding Email}" />

                    </StackPanel>

                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>

 

Partager cet article

Repost 0
Published by Romagny13 - dans C
commenter cet article

commentaires