IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Atteindre le contenu d'un DataGridTemplateColumn par code behind


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut Atteindre le contenu d'un DataGridTemplateColumn par code behind
    Bonjour,

    Dans le code suivant, j'ai lévénement "Loaded="bkCountrieInGrid_Loaded" qui s'exécute bien au chargement.

    Dans cet événement, j'aimerais ajouter un itemSource à me.bkCountrieInGrid ... mais ce nom n'est pas reconnu.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                <data:DataGrid x:Name="bkGrilleResellers" Width="1000" Margin="0,30,0,0"  AutoGenerateColumns="False" Loaded="bkGrilleResellers_Loaded" >
                <data:DataGrid.Columns>
                    <data:DataGridTextColumn x:Name="bkTextColumn" Header="Name" Binding="{Binding RevName}" Width="160" IsReadOnly="False"/>
     
                    <data:DataGridTemplateColumn x:Name="bkTemplateColumn" Header="Country" >                                       
                        <data:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate x:Name="bkDataTemplate">
                                <ComboBox x:Name="bkCountrieInGrid"  Width="360" DisplayMemberPath="CountryName" Height="35" Loaded="bkCountrieInGrid_Loaded" />     
                            </DataTemplate>
                        </data:DataGridTemplateColumn.CellTemplate>
                    </data:DataGridTemplateColumn>
                </data:DataGrid.Columns>
            </data:DataGrid>

    Je peux bien faire un me.bkDataTemplate mais comment atteindre le bkCountrieInGrid ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Oui mais ici ta combobox c'est pas unique vu qu'il y en a autant que tu as de lignes dans ton GridView.

    La solution est de t'abonner à l'évènement Loaded de ta CB (comme tu as fait d'ailleurs) et de stocker chacune des instances pour setter le ItemsSource plus tard.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    Je comprends qu'effectivement ce n'est pas unique.

    Peux-tu m'endire plus sur "stocker chacune des instances pour setter le ItemsSource plus tard" ?

    Merci

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Tu te crées un liste qui contient tous tes ComboBox et après tu fais un foreach dessus pour mettre le ItemsSource à la valeur que tu veux.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Points : 491
    Points
    491
    Par défaut
    OK super,

    j'ai juste fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub bkCountrieInGrid_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            CType(sender, ComboBox).ItemsSource = MonDomaineDS.CountryTbls
        End Sub
    et ça fonctionne nickel.

    Ca fait des jours que je cherchais à faire un binding directement dans le XAML mais sans succès.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appel de javascript par code behind
    Par Pynouz dans le forum ASP.NET
    Réponses: 9
    Dernier message: 19/09/2011, 13h39
  2. Comment atteindre un controle d'un CrystalReport par code
    Par touftouf57 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/09/2009, 14h46
  3. Réponses: 3
    Dernier message: 18/05/2009, 11h36
  4. Réponses: 1
    Dernier message: 18/05/2009, 09h52
  5. [ASP.NET / C#] Nettoyer un QueryString par code behind
    Par User.Anonymous dans le forum ASP.NET
    Réponses: 5
    Dernier message: 25/10/2007, 17h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo