Создайте простой триггер wpf для одного объекта, который влияет на другой

Это самое близкое, что я подошел к созданию простого триггера для этого. Я просто хочу, чтобы 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>

8
задан Azhar 18 November 2010 в 05:36
поделиться