[C#] [WPF] User control dans data template

User control dans data template [C#] [WPF] - C#/.NET managed - Programmation

Marsh Posté le 04-10-2010 à 16:09:48    

Bonjour,
 
je travaille sur une application WPF et j'ai un problème sur une listbox.
 
Voici un code XAML qui fonctionne :

Code :
  1. <ListBox ItemTemplate="{StaticResource AreaTemplate}"
  2.             ItemsSource="{Binding Areas}"
  3.             IsSynchronizedWithCurrentItem="True" />


 
J'ai donc une liste d'objets qui s'appelle "Areas" et voilà mon template (simplifié) :
 

Code :
  1. <DataTemplate x:Key="AreaTemplate">
  2.       <StackPanel>
  3.           <Grid>
  4.                <Label Content="#Libellé" />
  5.                <TextBox Text="{Binding Caption}" />
  6.           </Grid>
  7.      </StackPanel>
  8. </DataTemplate>


 
Jusque là, tout va bien, ma liste d'objets est affichée. Mais je voudrais mettre le code de mon template dans un contrôle utilisateur perso, entre autre pour pouvoir le modifier graphiquement...
 
je fais donc  

Code :
  1. <DataTemplate x:Key="AreaTemplate">
  2.        <my:AreaDescription />
  3. </DataTemplate>


 
et dans mon fichier "AreaDescription.xaml" j'ai :

Code :
  1. <UserControl x:Class="SGEeditor.AreaDescription" ... >
  2.       <StackPanel>
  3.           <Grid>
  4.                <Label Content="#Libellé" />
  5.                <TextBox Text="{Binding Caption}" />
  6.           </Grid>
  7.      </StackPanel>
  8. </UserControl>


 
Et là... ça ne m'affiche plus mon texte :'(

Reply

Marsh Posté le 04-10-2010 à 16:09:48   

Reply

Marsh Posté le 05-10-2010 à 15:08:32    

Merci pour la réponse mais j'ai fini par trouver mon erreur de débutant en WPF... J'avais du code behind dans mon constructeur qui faisait "DataContext = new ..."  
 
Donc voilà, désolé du dérangement pour cette boulette sans nom...
 
Mini. ¤s'en va supprimer tout le code behind... ¤
 
PS : le "DataContext = "{Binding}" " n'est pas nécessaire ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed