Это самое близкое, что я подошел к созданию простого триггера для этого. Я просто хочу, чтобы IsMouseOver == true в datagrid отображала кнопку. Проблема в том, что TargetName Setter'а говорит: Свойство 'TargetName' не представляет допустимую цель для 'Setter', потому что элемент с именем 'ButtonExpand' не найден. Убедитесь, что цель объявлена перед любыми сеттерами, триггерами или условиями, которые ее используют. Что я делаю не так?
<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>