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 :

Associer un template texbox a une listview


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 Associer un template texbox a une listview
    Bonjour ,j'ai une listview avec un textbox en template et un checkbox en template.
    Et lorsque je saisi dans le textbox ou que je coche ma chkbox, il n' y a pas de liaison avec ma listview.
    J'ai donc mis un binding mais ca ne change rien , je pense que je ne le mets pas correctement.

    QQlun saurait ? Merci d'avance

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <ListView x:Name="LstviewRemises" Visibility="Hidden" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding}" VirtualizingStackPanel.IsVirtualizing="True" FontFamily="Arial" FontSize="14" Foreground="#FF0F177D" HorizontalContentAlignment="Center" Margin="170,24,8,0" VerticalAlignment="Top" Height="232" SelectionChanged="LstviewRemises_SelectionChanged">
    		 			 	<ListView.View>
    		 		<GridView TextElement.FontFamily="Arial" TextElement.FontSize="12" TextElement.Foreground="#FF0F177D">
    		 			<GridViewColumn Header="Libelle" Width="300" x:Name="Libelle" DisplayMemberBinding="{Binding Libelle, Mode=TwoWay}" />
    		 			<GridViewColumn Header="Qte." Width="60" x:Name="Qte" DisplayMemberBinding="{Binding Qte, Mode=TwoWay}" />
    		 			<GridViewColumn Header="Prix" Width="80" x:Name="Prix" DisplayMemberBinding="{Binding PRIX, Mode=TwoWay}" />
    		 			<GridViewColumn Header="Total" Width="80" x:Name="TotalLigne" DisplayMemberBinding="{Binding TotalLigne, Mode=TwoWay}" />
    		 			<GridViewColumn 		 <GridViewColumn Header="%" Width="50" x:Name="ChkPourc">
    		 				<GridViewColumn.CellTemplate>
    		 					<DataTemplate x:Name="Dchpourc">
    		 						<CheckBox x:Name="chpourc" >
                                        <Binding Path="IsChecked" RelativeSource="{RelativeSource TemplatedParent}">
     
                                        </Binding>
                                        </CheckBox>
    		 					</DataTemplate>
    		 				</GridViewColumn.CellTemplate>
    		 			</GridViewColumn>
    		 			<GridViewColumn Header="Montant" Width="80">
    		 				<GridViewColumn.CellTemplate>
    		 					<DataTemplate>
    		 						<TextBox x:Name="TxtMontant"   MaxLength="10" Width="100"   TextChanged="TxtMontant_TextChanged" >
                                        <Binding Path="Text" RelativeSource="{RelativeSource TemplatedParent}">
     
                                        </Binding>
                                        </TextBox>
                                </DataTemplate>
    		 				</GridViewColumn.CellTemplate>
    		 			</GridViewColumn>
    		 		</GridView>
    		 	</ListView.View>
    		 </ListView>

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    normalement si tu met le texte de ta textbox sur le binding de l'item
    ca doit marcher
    style Text={Binding Text}
    pareil sur la checkbox avec des items du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class item
    {
    public string Text{ get; set;}
    public bool IsChecked { get; set; }
    }
    évidement pour avoir un binding dans les deux sens faudra pas oublier le INotifyPropertyChanged

  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 , mais en fait ce que je ne recupère pas c'est la ligne ou je me trouve.
    le listviewselectchanged ne s'effectue pas qd je saisi mon montant qui est en template comme s'il etait dissocié de ma listview.

    Et j'ai besoin de savoir sur quelle ligne je me trouve lorsque j'ai saisi mon montant.

    voila , voila

  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
    Si j'applique le proverbe "Cherche et tu trouveras" voila ce que j'ai trouvé



    Dans ma Listview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <GridViewColumn Header="%" Width="80" x:Name="TxtPourcCalc">
    		 				<GridViewColumn.CellTemplate>
    		 					<DataTemplate>
    		 						<TextBox x:Name="TxtPourc"   MaxLength="10" Width="100"   MouseLeftButtonDown="TxtPourc_MouseLeftButtonDown" SelectionChanged="TxtPourc_SelectionChanged">
                                        <Binding Path="Text" RelativeSource="{RelativeSource TemplatedParent}">
     
                                        </Binding>
                                    </TextBox>
                                </DataTemplate>
    		 				</GridViewColumn.CellTemplate>
    		 			</GridViewColumn>
    Dans TxtPourc_SelectionChanged :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((System.Windows.FrameworkElement)(sender)).DataContext
    Je récupère bien l'élément associé à ma ligne dans ma Listview.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    oui en effet le datacontext contient bien l'item que tu as sur la ligne sinon evidement le binding ne marcherait pas

Discussions similaires

  1. Multiple template dans une listview
    Par kokusho dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 26/09/2011, 12h45
  2. Réponses: 0
    Dernier message: 24/07/2007, 13h22
  3. [VB.NET] Associer nouveaux items a une ListView
    Par size_one_1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/12/2006, 14h32
  4. [C#] Surlignage d'un élement d'une ListView
    Par tontonplaisir dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/09/2004, 15h35
  5. [VB6] Supprimer un enregistrement dans une ListView ??
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/11/2002, 09h37

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