Как получить команду из DataContext в UTP ItemTemplate - PullRequest
0 голосов

У меня есть следующая часть XAML-кода

<ListView x:Name="FavoritesList" Grid.Row="0" Grid.ColumnSpan="3" Grid.RowSpan="1" Grid.Column="0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Top" ItemsSource="{Binding Favorites.FavoritesVideos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="local:FavoriteItem">
                <StackPanel Margin="10" Orientation="Horizontal">
                    <Button Content="&#59240;" Command="{Binding ElementName=listBox, Path=DataContext.ToPlayer}" CommandParameter="{Binding ElementName=Source, Path=Text}" FontFamily="Segoe MDL2 Assets" Background="Transparent" HorizontalAlignment="Right"/>
                    <TextBlock x:Name="Source" FontSize="18" Text="{Binding Path}" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                    <TextBlock FontSize="23" Text="{Binding Name}" Foreground="#FFFF2F00" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

Как видите, мне нужно привязать команду к кнопке из моего DataContext внутри ItemTemplate, но я понятия не имею, как это сделать.

1 Ответ

0 голосов

Я решил проблему.

<ListView x:Name="FavoritesList" Grid.Row="0" Grid.ColumnSpan="3" Grid.RowSpan="1" Grid.Column="0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Top" ItemsSource="{Binding Favorites.FavoritesVideos, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="local:FavoriteItem">
            <StackPanel Margin="10" Orientation="Horizontal">
                <Button Content="&#59240;" Command="{Binding ElementName=***FavoritesList***, Path=DataContext.ToPlayer}" CommandParameter="{Binding ElementName=Source, Path=Text}" FontFamily="Segoe MDL2 Assets" Background="Transparent" HorizontalAlignment="Right"/>
                <TextBlock x:Name="Source" FontSize="18" Text="{Binding Path}" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                <TextBlock FontSize="23" Text="{Binding Name}" Foreground="#FFFF2F00" HorizontalAlignment="Right" VerticalAlignment="Center"/>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
...