Partage
  • Partager sur Facebook
  • Partager sur Twitter

Wpf probleme avec la source de données

Sujet résolu
    13 mai 2011 à 7:08:42

    Pour ceux qui connaissent la programmation xml wpf j'aimerai ajouter a une listbox une source de données en utilisant le linq-to-sql , j'aimerai savoir toutes les etapes en commencant par l'ajout de la table dans l concepteur de la classe linq-to-sql jusqu'au data template et merci .
    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2011 à 11:20:02

      Tu veux quoi concrètement car tout ce que j'ai compris c'est que tu veux utiliser linq to sql et un data template de listbox ^^

      (et je te conseille d'utiliser linq to entities au lieu de linq to sql, ce dernier est un peu galère à utiliser par moment et n'est plus maintenu)
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2011 à 23:58:08

        voila ce que je veux faire j'ai une base de donnée et une fenetre qui contient un control listbox que je voudrai remplir avec les donèes de la base de donées à partir du code xaml
        • Partager sur Facebook
        • Partager sur Twitter
          14 mai 2011 à 12:10:15

          Tu ne pourras pas tout faire en XAML, il te faudra au moins créer un modèle de données (correspondant à un "élément" de la listbox) et une source de données (une ObservableCollection<TonModele> ) Et à partir de là tu pourras créer ton DataTemplate. Exemple:

          Imaginons ton modèle est ceci :
          public class Acteur : INotifyPropertyChanged
          {
              private string _prenom, _nom;
              private int _acteurId;
          
              public int ActeurId
              {
                  get { return _acteurId; }
                  set
                  {
                      _acteurId = value;
                      this.RaisePropertyChanged("ActeurId");
                  }
              }
          
              public string Nom
              {
                  get { return _nom; }
                  set
                  {
                      _nom = value;
                      this.RaisePropertyChanged("Nom");
                  }
              }
          
              public string Prenom
              {
                  get { return _prenom; }
                  set
                  {
                      _prenom = value;
                      this.RaisePropertyChanged("Prenom");
                  }
              }
          
              public event PropertyChangedEventHandler PropertyChanged;
          
              protected void RaisePropertyChanged(params string[] propNames)
              {
                  if (PropertyChanged != null)
                  {
                      foreach (string name in propNames)
                      {
                          PropertyChanged(this, new PropertyChangedEventArgs(name));
                      }
                  }
              }
          
          }
          


          Ta source de donnée (par exemple ici dans ton code behind pour faire simple)
          public partial class Window1 : Window
          {
              private ObservableCollection<Acteur> _acteurs;
          
              public ObservableCollection<Acteur> Acteurs
              {
                  get { return _acteurs; }
                  set { _acteurs = value; }
              }
          
              public Window1()
              {
                  Acteurs = new ObservableCollection<Acteur>();
                  GetData();
                  InitializeComponent();
              }
          
              private void GetData()
              {
                  //Remplie tes données à partir de la BDD
              }
          }
          


          Et pour finir ton XAML :
          <Window x:Class="WPFTest.Window1"
                  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                  x:Name="MainWindow"
                  xmlns:local="clr-namespace:WPFTest"
                  Title="MainWindow" Height="350" Width="525" BorderBrush="Black">
              <Grid>
                  <ListBox ItemsSource="{Binding ElementName=MainWindow, Path=Acteurs}">
                      <ListBox.ItemTemplate>
                          <DataTemplate>
                              <StackPanel Orientation="Horizontal">
                                  <TextBlock Text="{Binding ActeurId}" Margin="5,0,5,0"/>
                                  <TextBlock Text="{Binding Prenom}" Margin="5,0,5,0"/>
                                  <TextBlock Text="{Binding Nom}" Margin="5,0,5,0"/>
                              </StackPanel>
                          </DataTemplate>
                      </ListBox.ItemTemplate>
                  </ListBox>
              </Grid>
          </Window>
          


          Ce code est vraiment basique, mais tu devrais pouvoir l'adapter pour toi ;)
          • Partager sur Facebook
          • Partager sur Twitter
            15 mai 2011 à 9:13:08

            Merci c c que je cherchais , sympa ton aide avec tous les details :)
            • Partager sur Facebook
            • Partager sur Twitter

            Wpf probleme avec la source de données

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown