Tôi có một ItemsControl có ItemTemplate DataTemplate chứa một Button. Tôi muốn lệnh trên nút để liên kết với một lệnh trên DataContext của ItemsControl, không phải là ItemTemplate. Tôi nghĩ rằng giải pháp đã làm với sử dụng RelativeSource, nhưng những nỗ lực của tôi cho đến nay đã thất bại:Liên kết với các mụcControl DataContext từ bên trong một 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>
Làm thế nào tôi có thể nhận được các nút để ràng buộc vào GameSelectedCommand của đối tượng ItemsControl của DataContext?
cảm ơn câu trả lời, nhưng tôi thực sự đã thử điều này. Tôi nhận được lỗi DataBinding sau đây: Lỗi System.Windows.Data: 39: Lỗi đường dẫn BindingExpression: thuộc tính 'DataContext' không tìm thấy trên 'đối tượng' '' RelativeSource '(HashCode = 50668565)'. BindingExpression: Đường dẫn = DataContext.GameSelectedCommand; DataItem = 'RelativeSource' (HashCode = 50668565); yếu tố đích là 'Nút' (Tên = ''); mục tiêu bất động sản là 'Command' (loại 'ICommand') Tôi không chắc chắn nó thực sự tìm kiếm các ItemsControl chính nó –
Ha! Xin lỗi, tôi đã bỏ lỡ thực tế là bạn đã có Source = "..." thay vì RelativeSource = "...". Xem câu trả lời cập nhật của tôi. –
là vậy, cảm ơn. –