Ich bin mir nicht sicher, ob ein bindender Konverter in Ihrer Situation erlaubt ist. Aber hier ist eine Lösung, die nur einen verbindlichen Konverter in Ihrem Code benötigt. Hier
sind der Code in XAML
<Grid.Resources>
<local:ValueConverter x:Key="ValueConverter"></local:ValueConverter>
</Grid.Resources>
<TextBox Text="{Binding Text,UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Text,Converter={StaticResource ValueConverter}}" Value="True">
<Setter Property="TextBox.Foreground" Value="Red"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Hier wird das View-Modell und die Werteumwandler
public class ViewModel : INotifyPropertyChanged
{
private string _text;
public string Text
{
get
{
return this._text;
}
set
{
this._text = value;
if (null != PropertyChanged)
{
this.PropertyChanged(this, new PropertyChangedEventArgs("Text"));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class ValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (null != value)
{
if (value.ToString() == "1")
return true;
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
So ist die Lösung der Daten Trigger verwendet, das Ziel zu erfüllen. Der einzige Grund für die Verwendung von Bindungskonvertern besteht darin, dass Sie einen Ort benötigen, um zu bestimmen, welche Art von Wert den Vordergrund der TextBox ändern soll. Hier ist der Vordergrund von TextBox rot, wenn der Wert der TextBox "1" ist.
Ich habe das implementiert und es funktioniert perfekt. Vielen Dank für die Hilfe :) –
@AarohiS Es ist mir ein Vergnügen. Könnten Sie bitte meinen Beitrag als Antwort auf Ihre Frage markieren? Vielen Dank. :) – Colin