XAML UserControl datatrigger - PullRequest
       0

XAML UserControl datatrigger

1 голос
/ 13 марта 2010

У меня есть пользовательский контроль в XAML с парой кнопок ....

Когда свойство VideoEnable в моем коде C # меняется на true, я хочу изменить цвет кнопки.

Следующий код компилируется, но вылетает, и я не могу найти правильное решение

<UserControl.Triggers>
    <DataTrigger Binding="{Binding VideoEnable}" Value="true">
        <Setter Property="Button.Background" Value="Green" TargetName="VideoButton" />
        <Setter Property="Grid.Background" Value="Blue" TargetName="videoGrid" />
    </DataTrigger>
</UserControl.Triggers>

Теперь я попытался с помощью следующего кода, он не падает, но фон не меняется: s

<UserControl.Resources>
    <Style TargetType="{x:Type Button}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=Videos}" Value="true">
                <Setter Property="Button.Background" Value="Green" />
            </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

    public string Videos
    {
        get { return m_videos; }

        set
        {
            m_videos = value;
            NotifyPropertyChanged("Videos");
        }
    }

Хорошо, я нашел проблему ...

Это моя кнопка

        <Button DataContext="{Binding LensesBtn}" Margin="0,5,0,0" FontSize="14" FontWeight="Bold" Height="40" Opacity="0.8" HorizontalAlignment="Stretch" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <Button.Background>#dbebf9</Button.Background>
            <Button.BorderBrush>PowderBlue</Button.BorderBrush>
            <Button.BorderThickness>4</Button.BorderThickness>
            Lenses
        </Button>

Когда я удаляю свойства DataContext, Style и Background, все это работает ....

Но мне действительно нужны эти свойства

какие-нибудь советы?

1 Ответ

0 голосов
/ 30 декабря 2013
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="Videos" Value="True">
            <Setter Property="Background" Value="Green" />
        </Trigger>
    </Style.Triggers>
</Style>

это пример, который вам нужен, если ваш код действителен. Вы также можете добавить конвертер, чтобы проверить фон и другие свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...