2009-08-13 16 views
0

Ich verwende derzeit eine Linq-Vorlage mit SubSonic3, um meine Modelle zu erstellen. Ich habe eine einfache Member-Klasse, die eine Sammlung von Notes enthält. Eine Note-Klasse verfügt über die Eigenschaften "PublishedDate" und "Titel".Indirekte Bindung an untergeordnete Sammlungen in XAML

Ich habe ein UserControl, das eine Sammlung von Mitgliedern für seine DataContext hat. Es gibt zwei ListBoxes und eine Reihe von TextBoxes und andere Steuerelemente darauf. Die erste ListBox (membersList) erhält ihre ItemsSource aus dem DataContext UserControl und es zeigt einige Element Eigenschaften in jedem Element. Ich möchte die zweite ListBox (notesList), um die Notes-Auflistung des Mitglieds anzuzeigen, die in der ersten ListBox ausgewählt wurde.

Bisher auf notesList ich habe:

<ListBox ... ItemsSource="{Binding Notes}"...> 
    <DataTemplate> 
     <TextBox Text="{Binding Title}"/> 
    </DataTemplate> 

Es funktioniert teilweise. Wenn ich ein Mitglied auswähle, das Notizeinträge hat, gibt es die richtige Anzahl von Einträgen in notesListBox, aber das ist nur in den alternierenden Zeilenfarben sichtbar - nichts anderes! Die DataTemplate wird nicht den Titel der Notiz wiedergeben. Grundsätzlich funktionieren alle visuellen Stile in den ListBox und ListBoxItem - wechselnden Farben, Auswahlrahmen, Mouseover, etc., aber der Inhalt wird nicht angezeigt. Ich habe das Gefühl, das Problem ist meine Binding-Syntax, aber ich kann nicht herausfinden, was los ist.

Alle Vorschläge würden sehr geschätzt werden.

Prost, Dany.

Antwort

1

Stellen Sie sicher, dass Ihre Vorlage eine ContentPresenter enthält. Es hört sich so an, als hätten Sie das bei der Erstellung Ihrer Listbox vergessen.

Wenn Sie dies auslassen, kann das zu Ihrem Verhalten führen - vollständige Vorlage, aber kein "Inhalt", da kein Platz für die tatsächlichen Elemente vorhanden ist, die in jedem Listenfeldelement enthalten sein sollten.

+0

Hallo Reed, danke für die schnelle Antwort. Ja, ich habe bereits einen ContentPresenter in der Steuerelementvorlage. Die ControlTemplates sind für membersList und notesList identisch - der einzige Unterschied sind die DataTemplates. Die list ListBox von membersList wird sehr schön angezeigt, die einzige problematische ist notesListBox. – codedog