Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher tout les userControl dans un ItemControl

    18 janvier 2019 à 13:23:04

    Bonjour, comment puis-je faire en sorte que tout mes userControl aie la bonne auteur pour remplir le grid ?

    <Grid Grid.Row="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
    
        <DockPanel>
            <ItemsControl x:Name="RepasMatin">
                <ItemsControl.ItemTemplate>
                    <DataTemplate DataType="classes:C_T_plat">
                        <control:Plat ></control:Plat>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </DockPanel>
        <materialDesign:PackIcon Kind="Build" Grid.Column="2" HorizontalAlignment="Right" Cursor="Hand"/>
    
    </Grid>



    Je vous remercie d’avance pour votre aide :)

    Edit : Problème de balise code et Problème d'image

    -
    Edité par adrien_van 18 janvier 2019 à 13:27:16

    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2019 à 16:08:44

      Salut,

      Tu veux faire quoi exactement?

      Je t'avoue que j'ai relu plusieurs fois ton post et que j'ai pas compris..

      • Partager sur Facebook
      • Partager sur Twitter
      Fatalement vôtre
        18 janvier 2019 à 17:19:32

        Je dois dire que j'ai l'idée mais j'ai un peux du mal à l'expliqué

        Mais comme on peut voir sur l'image ci-dessu, mon 3e dessert est coupé car il sort de son "conteneur"
        Donc j'aimerais faire en sort que mes 3 (ou plus)<control:Plat ></control:Plat> prenne la hauteur de mon conteneur diviser par 3 (ou plus)

        ça devrais donné ça :

        Ici je fait comme ceci

        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            
            <control:Plat x:Name="Test" Grid.Row="0"></control:Plat>
            <control:Plat x:Name="Test1" Grid.Row="1"></control:Plat>
            <control:Plat x:Name="Test2" Grid.Row="2"></control:Plat>
        
            <materialDesign:PackIcon Kind="Build" Grid.Column="2" HorizontalAlignment="Right" Cursor="Hand"/>
            
        </Grid>



        Et je défini le dataContext

        Test.DataContext = Rm.ListPlat[0];
        Test1.DataContext = Rm.ListPlat[1];
        Test2.DataContext = Rm.ListPlat[2];



        Mais le nombre de plat peux varier donc cette solution ne me convient pas :(

        Edit : En gros, j'aimerais que les         <RowDefinition/> ce génère automatique et que ça y insert le <control:Plat ></control:Plat> avec la bonne donnée

        -
        Edité par adrien_van 18 janvier 2019 à 17:23:06

        • Partager sur Facebook
        • Partager sur Twitter
          18 janvier 2019 à 18:00:23

          Salut,

          Je pense que tu devrais utiliser un autre contrôle, un conteneur de type ListView ou ListBox par exemple (ou encore un ItemsControl voir StackPanel).

          Avec une Grid ce ne sera pas possible, car tu devra gérer tes lignes à la main.

          • Partager sur Facebook
          • Partager sur Twitter
          Fatalement vôtre
            18 janvier 2019 à 18:40:17

            Merci pour ton aide :)

            Par contre ici je peux définir la hauteur, mais comment faire pour qu'elle soit automatique ?

                    <Grid Grid.Row="0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <DockPanel>
                            <ListView  x:Name="RepasMatin">
                                <ListView.ItemContainerStyle>
                                    <Style TargetType="{x:Type ListViewItem}">
                                        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                                        <Setter Property="Height" Value="50"/><!-- 50 correspond pour 4 Repas --!>
                                    </Style>
                                </ListView.ItemContainerStyle>
                                <ListView.ItemTemplate>
                                    <DataTemplate DataType="classes:C_T_plat">
                                        <control:Plat ></control:Plat>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                            </ListView>
                        </DockPanel>
            
                        <materialDesign:PackIcon Kind="Build" Grid.Column="2" HorizontalAlignment="Right" Cursor="Hand"/>
                        
                    </Grid>



            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2019 à 9:47:43

              Salut,

              Si tu ne touches pas à la hauteur, par défaut elle doit être en Auto.

              A quoi ça ressemble exactement pour le moment?

              • Partager sur Facebook
              • Partager sur Twitter
              Fatalement vôtre

              Afficher tout les userControl dans un ItemControl

              × 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