2010-06-03 4 views
0

Importer une fenêtre de ruban et dans la "zone de contenu en dessous" J'ai une grille dans laquelle je vais afficher UserControls. Pour démontrer mon problème permet de jeter un oeil à ce simple UserControl:WPF UserControl problème de liaison étrange

 <ListView x:Name="lvPersonList"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Width="120" Header="Name" DisplayMemberBinding="{Binding Name}"/> 
       <GridViewColumn Width="120" Header="Height" DisplayMemberBinding="{Binding Height}"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 

Et le code:

public partial class MyUserControl: UserControl 
{ 
    private List<Person> personList; 

    public TestSnpList() 
    { 
     InitializeComponent(); 
     this.personList = new List<Person>(); 
     this.personList.Add(new Person { Name = "Chuck Norris", Height = 210 }); 
     this.personList.Add(new Person { Name = "John Rambo", Height = 200 }); 
     this.lvPersonList.ItemsSource = personList; 
    } 
} 
public class Person 
{ 
    public string Name { get; set; } 
    public int Height { get; set; } 
} 

Le parent fenêtre:

<Grid x:Name="grdContent" DockPanel.Dock="Top"> 
     <controls:MyUserControl x:Name="myUserControl" Visibility="Visible"/> 
    </Grid> 

je ne sais pas pourquoi cette liaison understant ne fonctionne pas. Au lieu de valeurs (Nom et Hauteur), je reçois des noms de classes complètes. Si j'utilise ce code dans une fenêtre, cela fonctionne très bien.

Des idées? Je voudrais que cet utilisateur contorl travaille pour lui-même (il obtient les données de la base de données et le représente dans un ListView) ...

Merci!

+0

Pouvez-vous dire ce que 'TestSnpList public()' est? Êtes-vous capable d'atteindre le code 'this.lvPersonList.ItemsSource = personList;' en utilisant le débogueur. «Je reçois des noms complets» Avez-vous le nom de la classe Personne? – Amsakanna

+0

Ah désolé, ce TestSnpList est un vrai nom de classe (je l'ai renommé ici et j'ai oublié de renommer le constructeur). Oui, bien sûr que je peux l'atteindre - il a 2 éléments (myNamespace.Person). Lorsque listView est affiché, je peux voir deux éléments comme celui-ci: myNamespace.Person myNamespace.Person Des idées? – Heko

Répondre

0

Il semble que le problème est avec RibbonWindow. Si j'utilise Windows et la liaison UserControl fonctionne très bien, mais si j'utilise la liaison RibbonWindow (Odyssey Ribbon) ne fonctionne pas. Ce que je ne comprends pas que dans le mode de conception, je peux voir les valeurs propres et en mode de fonctionnement, je ne vois que les noms de classe:

http://i977.photobucket.com/albums/ae255/HekoSLO/designModeVSrunning.png