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

Windows Presentation Foundation Discussion :

Récuperer un controle dans le code


Sujet :

Windows Presentation Foundation

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 Récuperer un controle dans le code
    Bonjour j'ai le code xaml suivant :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <Custom:DataGrid x:Name="DataGrille" Width="200" Visibility="Visible" IsSynchronizedWithCurrentItem="True" FontFamily="Arial" FontSize="14" Foreground="#FF0F177D" AutoGenerateColumns="False" AlternatingRowBackground="AliceBlue" Margin="-4,-3,0,-5"   HorizontalAlignment="Left" d:LayoutOverrides="Width">
                    <Custom:DataGridTemplateColumn x:Name="TcboGroupe"  >
                        <Custom:DataGridTemplateColumn.CellTemplate >
                            <DataTemplate  >
                                <ComboBox x:Name="CboGroupe"  ItemsSource="{Binding}" DisplayMemberPath="LibGoup" SelectionChanged="CboGroupe_SelectionChanged"></ComboBox>
                            </DataTemplate>
                        </Custom:DataGridTemplateColumn.CellTemplate>
                    </Custom:DataGridTemplateColumn>
     
                </Custom:DataGrid>

    Le probleme c'est que je n'arrive pas à récupérer mon Combobox dans le code.
    Je n'y accede pas .

    Pouvez vous m'aider ?

    Merci beaucoup

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Le problème est que tu vas avoir autant de ComboBox "CboGroupe" que tu vas avoir de ligne dans ta DataGrid. Donc laquelle s'appelle "CboGroupe" ? C'est pour ça que c'est pas possible de cette manière.

    Quel est ton besoin ?
    Dans l'évènement SelectionChanged de ta ComboBox, tu peux savoir sur quelle ComboBox tu te trouves en faisant un cast du sender :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        private void CboGroupe_SelectionChanged(object sender, SelectionChangedEventArgs e) {
          ComboBox cmbBox = (ComboBox)sender;
     
    }

    Est-ce que c'est dans un autre cas de figure que tu cherches à récupérer la ComboBox ?

  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
    En effet c'est ce que je veux faire , une combo par ligne.

    Ce que je voudrais exactement c'est changer la couleur de la colonne suivant l'utilisateur que je recupère par le code dans la base de données, mais comme j'ai besoin d'un controle dans ma datagrid que ce soit une combo ou un textbox , ca se superpose sur la couleur de la colonne
    Alors je me suis dit que j'allais changer la couleur du controle mais je n'y accede pas.

    Mais visiblement ce n'est pas la bonne maniere de faire...

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Je suis pas sur de comprendre. Je te propose quand même un tuto pour personnaliser une DataGrid :
    http://blogs.msdn.com/b/jaimer/archi...-datagrid.aspx

    Sinon peut être que tu peux utiliser du binding sur la propriété Background de ton contrôle pour faire ce que tu veux.

  5. #5
    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
    Je vais essayer de me debrouiller avec ca
    En tout cas merci beaucoup.

    Je cherche une formation dans ma région mais je n'en trouve pas , pourtant j'en ai vraiement besoin

  6. #6
    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 Appliquer un style
    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
    15
    <Style x:Key="StyledeColonne" TargetType="{x:Type Custom:DataGridCell}">
                <Setter Property="Background" Value="Transparent" />
                <Setter Property="BorderBrush" Value="Transparent" />
                   <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Custom:DataGridCell}">
                            <Border Background="Transparent" 
                      BorderBrush="{TemplateBinding BorderBrush}"  
                      BorderThickness="0" 
                      SnapsToDevicePixels="True">
                                <ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

    Ensuite dans ma datagrid:Je voudrais appliquer le style "StyledeColonne" a ma template en dessous mais je ne sais pas ou lui dire

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <Custom:DataGridTemplateColumn x:Name="StyleColonne"  Visibility="Hidden"  >
                                    <Custom:DataGridTemplateColumn.CellStyle >
                                        <Style   BasedOn="{StaticResource DataGridCellStyleaa}"  > ??? je ne pense pas!
     
                                        </Style>
                                    </Custom:DataGridTemplateColumn.CellStyle>
                                    <Custom:DataGridTemplateColumn.CellEditingTemplate>
     
                                        <DataTemplate x:Name="DCol"  >                    
                                                <TextBox  x:Name="TxtSaisie" Width="100" Height="30"  />
                                        </DataTemplate>
                                    </Custom:DataGridTemplateColumn.CellEditingTemplate>
                                </Custom:DataGridTemplateColumn>


    Ensuite par code je vais créer autant de colonne que j'ai d'utilisateur .
    Ces colonnes sont basées sur ma datatemplate qui me sert de modèle.
    Je crée une colonne et je lui dit que ma nouvelle colonne.celltemplate=StyleColonne.celltemplate.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/09/2013, 11h48
  2. Réponses: 1
    Dernier message: 20/08/2009, 12h12
  3. Réponses: 1
    Dernier message: 20/01/2007, 11h47
  4. Réponses: 2
    Dernier message: 03/05/2006, 08h33
  5. [C#] Control user dans le code caché
    Par pc152 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 07/05/2004, 06h36

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