wpf data-binding xaml datatemplate itemscontrol

listbox wpf



Enlace a DataControl DataContext desde dentro de una plantilla de elemento (1)

Está configurando el origen del enlace en ItemsControl . Por lo tanto, deberá desreferenciar el DataContext de ItemsControl :

Command="{Binding DataContext.GameSelectedCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}}"

¿Cómo hubieras sabido esto? Eche un vistazo a la ventana de salida de depuración cuando ejecuta la aplicación. Verás un mensaje en la línea de "No se puede resolver la propiedad ''GameSelectedCommand'' en el tipo ''ItemsControl''".

Tengo un ItemsControl cuyo para el ItemTemplate DataTemplate contiene un botón. Quiero que el comando en el botón se vincule con un comando en el DataContext de ItemsControl, no en ItemTemplate. Creo que la solución tiene que ver con el uso de RelativeSource, pero mis intentos hasta ahora han fallado:

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

¿Cómo puedo hacer que el botón se vincule al GameSelectedCommand del objeto DataContext de ItemsControl?