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?

Foi útil?

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