Mam ItemControl, którego dla ItemTemplate DataTemplate zawiera przycisk. Chcę, aby polecenie na przycisku powiązało polecenie z DataContext elementu ItemsControl, a nie ItemTemplate. Myślę, że rozwiązanie ma do czynienia z użyciem RelativeSource, ale moje próby do tej pory nie udało:Bind to ItemsControl DataContext z wewnątrz ItemTemplate
<ItemsControl ItemsSource="{Binding Games}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="{Binding Path=GameSelectedCommand, Source={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}"
CommandParameter="{Binding}"
Style="{StaticResource MenuButtonStyle}"
Content="{Binding Name}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Jak mogę uzyskać przycisk do wiązania się z GameSelectedCommand obiektu ItemsControl za DataContext?
dziękuję za odpowiedź, ale tak naprawdę to wypróbowałem. Otrzymałem następujący błąd DataBinding: System.Windows.Data Error: 39: Błąd ścieżki BindingExpression: Właściwość "DataContext" nie została znaleziona w 'obiekcie' '' RelativeSource '(HashCode = 50668565) ". BindingExpression: Path = DataContext.GameSelectedCommand; DataItem = 'RelativeSource' (HashCode = 50668565); elementem docelowym jest "Button" (Name = ''); Właściwością target jest "Command" (typ "ICommand"). Nie jestem pewien, czy faktycznie znajduje ItemsControl w sobie –
Ha! Niestety, przegapiłem fakt, że zamiast Source = "..." masz Source = "...". Zobacz moją zaktualizowaną odpowiedź. –
to wszystko, dziękuję. –