Question

Salut, je suis un datatemplate pour un ViewModel.

Dans ce DataTemplate je suis un ListView lié à une collection du modèle et là je wan't pour être en mesure de définir une propriété des éléments de la collection.

Les paramètres disponibles de la propriété se trouve dans une autre collection dans la ViewModel originale mais je vais avoir du mal à s'y lier.

<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>

Y at-il une bonne façon d'obtenir la liaison à l'élément du niveau supérieur DataTemplate?

Était-ce utile?

La solution

Je crois que vous souhaitez utiliser:

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

lie au AvailablePropertiesCollection sur le contexte de données de ListView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top