2016-04-06 2 views
0

Mein Ansichtsmodell sieht wie folgt aus:eine verschachtelte Liste in XAML Bindung

public class MainViewModel : BaseViewModel 
{ 
    public List<Paragraph> Paragraphs { get; set; } 
    . . . 
} 

public class Paragraph 
{ 
    public List<ParagraphElement> Elements; 
    . . . 
} 

Und meine XAML sieht wie folgt aus:

<StackPanel Grid.Row="1"> 
     <ItemsControl ItemsSource="{Binding Paragraphs}"> 
      <ItemsControl ItemsSource="{Binding Elements}" ItemTemplate="{StaticResource ParagraphElements}" /> 
     </ItemsControl> 
    </StackPanel> 

bekomme ich folgende Fehlermeldung: "XamlParseException"

und die Zusätzliche Information: 'Wert zur Sammlung des Typs' S hinzufügen ystem.Windows.Controls.ItemCollection ' hat eine Ausnahme ausgelöst. '

Wie kann ich diese Nests-Struktur in XAML binden?

Antwort

1

müssen Sie ItemTemplate für äußere ItemsControl festlegen. Exception wird ausgelöst, weil Sie ItemsSource für das äußere ItemsControl festlegen und der Items-Auflistung gleichzeitig ein inneres ItemsControl hinzufügen

+0

Jetzt bekomme ich keinen Fehler. Aber ich sehe nichts außer n Rechtecke mit grünen Grenzen, wo n = Anzahl von Parapgrahs. –

+1

@ moller1111, in Ihrem Beispiel 'public List Elements;' ist ein Feld. "Binding" benötigt eine Eigenschaft, es sollte eine Nachricht im Ausgabefenster über den Binding-Fehler sein. Ändere deinen Code wie folgt: 'public List Elemente {get; set;}' (ähnlich wie 'Paragraphs'). Habe das erste Mal nicht bemerkt – ASh