Esto es lo más cercano que he llegado a crear un desencadenador simple sobre esto. Solo quiero que IsMouseOver == true de la cuadrícula de datos muestre el botón. El problema es que TargetName del Setter dice: La propiedad 'TargetName' no representa un objetivo válido para 'Setter' porque no se encontró un elemento llamado 'ButtonExpand'. Asegúrese de que el objetivo se declara antes de cualquier Setter, Trigger o condición que lo use. ¿Qué estoy haciendo mal?Crear un disparador wpf simple en un objeto que afecta a otro
<UserControl.Resources>
<Style TargetType="DataGrid">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonExpand" Property="Visibility" Value="Visible" />
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Grid>
<DataGrid Name="MainDataGrid" ItemsSource="{Binding Programs}" IsReadOnly="True" AutoGenerateColumns="false" >
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Version" Binding="{Binding Version}"/>
<DataGridTextColumn Header="Publisher" Binding="{Binding Publisher}"/>
</DataGrid.Columns>
</DataGrid>
<Button Name="ButtonExpand" Height="25" Width="25" HorizontalAlignment="Right" VerticalAlignment="Bottom" Visibility="Hidden">+</Button>
</Grid>
Cuando el mouse está sobre el botón, parpadea. – Bluebaron
Esto es principalmente correcto. No puedo darles los puntales de respuesta porque no tengo el nivel 15 o algo así. Publiqué mi respuesta a continuación, pero no puedo hacer clic en ella como la respuesta durante 2 días. Muchas gracias. Definitivamente mereces la respuesta para esto, pero no quiero fastidiar a nadie con la misma pregunta. – Bluebaron
@Bluebaron: edité tus dos cambios en la respuesta de Meleak, por lo que ahora puedes eliminar tu respuesta y marcarla como correcta. Los dos cambios se colapsaron -> Oculto, MainDataGrid -> MainGrid, y para agregar el código circundante para mostrar dónde se define MainGrid. –