XAML: fiasco de vinculação com um DataTemplate em um ListView em um DataTemplate
-
27-10-2019 - |
Pergunta
Olá, recebi um dataTemplate para um ViewModel.
Dentro deste DataTemplate, obtive um ListView vinculado a uma coleção do modelo e aí não quero poder definir uma propriedade dos itens da coleção.
As configurações disponíveis da propriedade estão em outra coleção no ViewModel original, mas estou tendo dificuldade em vincular a ela.
<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>
Existe uma boa maneira de obter a vinculação do item do DataTemplate de nível superior?
Solução
Acredito que você gostaria de usar:
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListView}},
Path=DataContext.AvailablePropertiesCollection}"
Isso se vincula a AvailablePropertiesCollection no contexto de dados do ListView.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow