«Привязка свойства цвета к фону границы с помощью datatrigger» - PullRequest
0 голосов
/ 10 декабря 2011

Я новичок в технологии WPF и использую архитектуру MVVM. Я хочу, чтобы моя граница меняла цвет, когда свойство, привязанное во ViewModel, меняет свое значение. давайте посмотрим на код:

В моем XAML:

<Window.Resources>
 <Style TargetType="{x:Type Border}" x:Key="LineColor">
            <Setter Property="Background" Value="Transparent"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding lcolor}" Value="Blue">
                    <Setter Property="Background" Value="Green">

                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
</Window.Resources>

Я привязываю это к моей границе:

<Border CornerRadius="1,1,0,0" Style="{StaticResource LineColor}" >

Тогда в моей ViewModel я взял простую строку:

public string lcolor="Blue";

Но это не работает вообще. Пожалуйста, помогите мне.

РЕДАКТИРОВАТЬ : я попробовал это следующим образом:

public Boolean lcolor
    {
            get { return (Boolean)this.GetValue(StateProperty); }
            set { this.SetValue(StateProperty, value); }
    }

    public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
          "lcolor", typeof(Boolean), typeof(CallControlViewModel));

Но это дает мне следующую ошибку:

Ошибка 9

«PSWGS.Client.Module.CallControl.ViewModels.CallControlViewModel» не содержит определения для «GetValue» и не имеет метода расширения «GetValue», принимающего первый аргумент типа «PSWGS.Client.Module.CallControl.ViewModels.Calll. 'может быть найдено (вам не хватает директивы using или ссылки на сборку?)

1 Ответ

1 голос
/ 10 декабря 2011

Прочитайте обзор привязок данных и об отладке привязок , как только вы все поймете, вы можете вернуться.

lcolor - это поле , оно должно быть свойством , далее вам может понадобиться взглянуть на INPC.

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