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

C# Discussion :

Probleme FrameWorkTemplate. FindName


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut Probleme FrameWorkTemplate. FindName
    Bonjour j'essaie de recuperer la valeur d'un template dans une datagrid
    et j'ai null.Voici un bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      <Custom:DataGrid x:Name="DataGridClients"  HorizontalContentAlignment="Center" ItemsSource="{Binding}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" IsSynchronizedWithCurrentItem="True" FontFamily="Arial" FontSize="14" Foreground="#FF0F177D" VerticalAlignment="Bottom">
                    <Custom:DataGrid.Columns>
     
                            <Custom:DataGridTemplateColumn x:Name="DataTemplateChk1" Header="Choisir" >
                            <Custom:DataGridTemplateColumn.CellTemplate >
                                <DataTemplate x:Name="ChoixCli">
     
                                    <CheckBox x:Name="ChkChoix"   >
                                    </CheckBox>
     
                                </DataTemplate>
     
                        </Custom:DataGridTemplateColumn.CellTemplate>
     
                        </Custom:DataGridTemplateColumn>
    Puis en c#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     for (int i = 0; i < DataGridClients.Items.Count; i++)
                {
     CheckBox ch = this.DataGridClients.Template.FindName("ChkChoix", this.DataGridClients) as CheckBox;
                }

    J'ai le ch a null , je ne recupère pas le checkbox , qqlun a une idée ?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Si on regarde ton code, i permet de boucler sur les différentes lignes de ta DataGrid mais n'apparaît pas dans la ligne qui te permet de récupérer le CheckBox ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Oui je sais bien , j'ai mis aussi mon selectedindex =0 , mais ca ne change rien
    Je ne vois pas bien comment recuperer mon ischecked de ma checkbox en template

    J'ai aussi essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CheckBox ch = DataTemplateChk1.CellTemplate.LoadContent() as CheckBox;
    Mais en fait cela semble etre les valeurs initiales

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Bonjour j'ai le meme proble avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      <Custom:DataGridTemplateColumn x:Name="DataTemplateTVA" Header="TVA" >
                            <Custom:DataGridTemplateColumn.CellTemplate x:Uid="celltempTVA">
                                <DataTemplate x:Name="DataTempTVA">
                                    <ComboBox x:Name="cboTVA"  IsEditable="False"  IsReadOnly="True" IsSynchronizedWithCurrentItem="True"  DisplayMemberPath="LIBTVA" VirtualizingStackPanel.IsVirtualizing="True"  FontFamily="Arial" FontSize="16" Foreground="#FF0F177D"    >
                                    </ComboBox>
                                </DataTemplate>
                            </Custom:DataGridTemplateColumn.CellTemplate>
                        </Custom:DataGridTemplateColumn>
    Dans une Datagrid

    Dans mon evenement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void DataGridProduits_LoadingRow(object sender, Microsoft.Windows.Controls.DataGridRowEventArgs e)
            {
            ComboBox tva = (ComboBox)((System.Windows.Controls.Primitives.Selector)(DataTemplateTVA.CellTemplate.LoadContent())).FindName("cboTVA") as ComboBox ;
                tva.ItemsSource = LstTVA;
                tva.SelectedIndex = 0;
            }
    J'ai bien une Combobox dans ma grille mais je n'ai rien dedans
    J'ai pourtant bien ma liste dans combo !
    ??

    qqlun peut m'aider ?

Discussions similaires

  1. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  2. Réponses: 2
    Dernier message: 30/05/2002, 08h54
  3. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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