WPF:如何根据XAML中另一个的Text属性更改文本框的前景颜色?

Dab*_*rnl 3 .net wpf xaml

我希望将WPF文本框的Foreground属性设置为红色,只要其Text属性与表单上另一个文本框的Text属性不匹配即可.我可以在后面的代码中通过与转换器的绑定来实现这一点.但有没有办法只在XAML中做到这一点?(我在想某种触发器).

Ken*_*art 7

不,你需要代码.该代码可以在转换器中:

<TextBox x:Name="_textBox1"/>
<TextBox Foreground="{Binding Text, ElementName=_textBox1, Converter={StaticResource ForegroundConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

或者在视图模型中:

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; }
}
Run Code Online (Sandbox Code Playgroud)