Frage

Hallo, ich habe eine DataTemplate für ein ViewModel.

Innerhalb dieser DataTemplate habe ich eine ListView an eine Sammlung der Vorlage gebunden, und dort möchte ich keine Eigenschaft der Elemente in der Sammlung festlegen.

Die verfügbaren Einstellungen der Eigenschaft befinden sich in einer anderen Sammlung im ursprünglichen ViewModel, aber es fällt mir schwer, daran zu binden.

<DataTemplate DataType="{x:Type ViewModel}">

    <!-- Some irrelevant property bindings -->

    <ListView ItemsSource="{Binding Path=TheCollection}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource SOMEAPPROPRIATERELATIVESOURCE}, 
                                           Path=AvailablePropertiesCollection}"  SelectedItem="{Binding Path=TheProperty}" />
                </DataTemplate>
            </ListView.ItemTemplate>
    </ListView>

Gibt es einen guten Weg, um die Bindung an das Element der obersten Datentatemplate zu erhalten?

War es hilfreich?

Lösung

Ich glaube, Sie möchten verwenden:

ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListView}}, 
    Path=DataContext.AvailablePropertiesCollection}"

Dies bindet an den verfügbaren PropertiesCollection im Datenkontext von ListView.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top