WPF: Как изменить цвет переднего плана текстового поля в зависимости от свойства текста другого в XAML? - PullRequest
2 голосов
/ 30 августа 2009

Я хочу сделать свойство Foreground текстового поля WPF красным, если его свойство Text не совпадает со свойством Text другого текстового поля в форме. Я могу сделать это в коде и через привязку с конвертером. Но есть ли способ сделать это только в XAML? (Я думал о каком-то триггере).

1 Ответ

5 голосов
/ 30 августа 2009

Нет, вам нужен код. Этот код может быть в конвертере:

<TextBox x:Name="_textBox1"/>
<TextBox Foreground="{Binding Text, ElementName=_textBox1, Converter={StaticResource ForegroundConverter}}"/>

Или в виде модели:

public string FirstText
{
    //get/set omitted
}

public string SecondText
{
    get { return _secondText; }
    set
    {
        if (_secondText != value)
        {
            _secondText = value;
            OnPropertyChanged("SecondText");
            OnPropertyChanged("SecondTextForeground");
        }
    }
}

public Brush SecondTextForeground
{
    get { return FirstText == SecondText ? Brushes.Red : Brushes.Black; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...