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

1-Personnaliser le datagrid

  • Propriété AutoGenerateColumns= « False » du datagrid
  • On définit les DataGrid.Columns et le binding

<DataGrid x:Name="datagridClients" Height="150" ItemsSource="{Binding Clients}" Grid.Row="0" AutoGenerateColumns="False">     

            <DataGrid.Columns>

                <DataGridTextColumn Header="Nom" Binding="{Binding Name}"/>

                <DataGridTextColumn Header="E-mail" Binding="{Binding Email}"/>

            </DataGrid.Columns>

        </DataGrid>

ObservableCollection<T>

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

DataContext = this;

On utilise un property dans le code behind

  public ObservableCollection<Client> Clients

        {

            get;

            set;

        }

 

2-Datagrid/ComboBox

Avec un DataTemplate et une comboBox :

  • ItemsSource on charge les données du property Categories
  • DisplayMemberPath membre à afficher de la source de données
  • SelectedValuePath : équivalent à la clé primaire de la table mère
  • SelectedValue : équivalent à la clé étrangère

En gros on affiche la liste des catégories et on sélectionne la catégorie du client (correspondante à sa clé étrangère  qui est de type int)

   <DataGrid x:Name="datagridClients" Height="150" ItemsSource="{Binding Clients}"  SelectedItem="{Binding SelectedClient}" Grid.Row="0" AutoGenerateColumns="False" SelectionChanged="datagridClients_SelectionChanged">

            <DataGrid.Columns>

                <DataGridTextColumn Header="Nom" Binding="{Binding Name}"/>

                <DataGridTextColumn Header="E-mail" Binding="{Binding Email}"/>

 

                <DataGridTemplateColumn Header="Catégorie">

                    <DataGridTemplateColumn.CellTemplate>

                        <DataTemplate>

                            <ComboBox

                                        ItemsSource="{Binding Categories, RelativeSource={RelativeSource AncestorType=Window}}"

                                        DisplayMemberPath="Name" SelectedValuePath="Id" 

                                        SelectedValue="{Binding CategoryId,UpdateSourceTrigger=PropertyChanged}" />

                        </DataTemplate>

                    </DataGridTemplateColumn.CellTemplate>

                </DataGridTemplateColumn>

            </DataGrid.Columns>    

        </DataGrid>

GetClients() et GetCategories sont des méthodes renvoyant des listes génériques

        public MainWindow()

        {

            InitializeComponent();

 

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

            Categories = new ObservableCollection<Category>(GetCategories());

 

            DataContext = this;

        }

          public Client SelectedClient { get; set; }

 

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

 

     

Partager cet article

Repost 0
Published by Romagny13 - dans C
commenter cet article

commentaires