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:40

III-Binding sur property dans le code – behind  de la page

1-ObservableCollection<T>

            // Avec une liste générique

            Clients = new ObservableCollection<Client>(GetClients());

            // Avec DataTable

            Clients = new ObservableCollection<Client>();

            foreach (DataRow row in GetClientsTable().Rows)

                Clients.Add(new Client(Convert.ToInt32(row["Id"]), Convert.ToString(row["Name"]), Convert.ToString(row["Email"]), Convert.ToInt32(row["CategoryId"])));

 

            DataContext = this.Clients;

 

Le property

    public ObservableCollection<Client> Clients

        {

            get;

            private set;

        }

 

CollectionViewSource

// Liste

Clients = new CollectionViewSource { Source = GetClients() };

// DataTable

Clients = new CollectionViewSource { Source = GetClientsTable() };   

DataContext = this.Clients;

 

<DataGrid Name="datagridClients" Height="120" ItemsSource="{Binding}"/>

 

Le Property

public CollectionViewSource Clients

        {

            get;

            private set;

        }

 

IV – Avec un ViewModel

ClientsViewModel

  public class ClientsViewModel

    {

        public ObservableCollection<Client> Clients

        {

            get;

            private set;

        }

 

        public ClientsViewModel(ObservableCollection<Client> clients)

        {

            this.Clients = clients;

        }

}

 

MainForm

DataContext =new ClientsViewModel(new ObservableCollection<Client>(GetClients()));

 

<DataGrid Name="datagridClients" Height="120" ItemsSource="{Binding Clients}"/>

 

 2 -CollectionViewSource  

ClientsViewModel

  public class ClientsViewModel

    {

 

        public ICollectionView Clients

        {

            get;

            private set;

        }

 

        public ClientsViewModel(ICollectionView clients)

        {

            this.Clients = clients;

        }

}

MainForm

var clients = new CollectionViewSource() { Source = GetClients() }.View;

DataContext = new ClientsViewModel(clients);

ItemsSource pointe sur le property Clients de ClientsViewModel

<DataGrid Name="datagridClients" Height="120" ItemsSource="{Binding Clients}"/>

 

OU variante

ClientsViewModel

public class ClientsViewModel

    {

        public CollectionViewSource Clients

        {

            get;

            private set;

        }

 

        public ClientsViewModel(CollectionViewSource clients)

        {

            this.Clients = clients;

        }

}

 

MainForm

CollectionViewSource clients = new CollectionViewSource() { Source = GetClients() };

DataContext = new ClientsViewModel(clients);

 

<DataGrid Name="datagridClients" Height="120" ItemsSource="{Binding Clients.View}"/>

 

Partager cet article

Repost 0
Published by Romagny13 - dans C
commenter cet article

commentaires