XAML: associazione del fiasco con un DataTemplate all'interno di un ListView all'interno di un DataTemplate
-
27-10-2019 - |
Domanda
Ciao, ho un dataTemplate per un ViewModel.
All'interno di questo DataTemplate ho ottenuto un ListView associato a una raccolta del modello e lì In non volevo essere in grado di impostare una proprietà degli elementi nella raccolta.
Le impostazioni disponibili della proprietà si trovano in un'altra raccolta nel ViewModel originale, ma ho difficoltà a vincolarle.
<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>
Esiste un buon modo per ottenere l'associazione all'elemento del DataTemplate di livello superiore?
Soluzione
Credo che vorresti usare:
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListView}},
Path=DataContext.AvailablePropertiesCollection}"
Questo si lega a AvailablePropertiesCollection nel contesto dati di ListView.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow