Я уверен, что вы хотите реализовать какую-то проверку.
Вместо использования триггера я использовал встроенные функции проверки WPF.
Один из способов сделать это - реализовать интерфейс IDataErrorInfo
в вашей модели (модели). Реализация
public class MainWindowViewModel : INotifyPropertyChanged, IDataErrorInfo
Error
недвижимость:
public string Error { get { return null; } }
реализация индексатор по:
public string this[string columnName]
{
get
{
if(columnName == "SomeRandomText")
{
if(string.IsNullOrEmpty(SomeRandomText) || SomeRandomText.Length < 4)
{
return "Text should be at least four characters long";
}
}
return null;
}
}
В XAML:
<TextBox Text="{Binding SomeRandomText, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />
Результат:
Если вы не хотите, чтобы реализовать интерфейс IDataErrorInfo
вы можете использовать ValidationRule
с.
То же самое достигается с ValidationRule
:
<Binding Path="SomeRandomText" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:LengthValidationRule RequiredLength="4" />
</Binding.ValidationRules>
</Binding>
И ValidationRule
:
public class LengthValidationRule : ValidationRule
{
public int RequiredLength { get; set; }
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
var text = (string)value;
if(string.IsNullOrEmpty(text) || text.Length < RequiredLength)
{
return new ValidationResult(false, "Text should be at least four characters long");
}
return ValidationResult.ValidResult;
}
}
Если вы хотите иметь другую границу вы можете посмотреть в прикрепленном собственности Validation.ErrorTemplate
.
Если вы действительно хотите сделать это с помощью триггера, как упоминалось выше, вы можете сделать это с помощью преобразователя, названного, например, LessThanConverter
. Требуется Length
Text
, а другой номер, который вы хотите сравнить с ConverterParameter
, и вернет bool
.
Я думаю, что вы хотите сделать проверку данных. WPF имеет некоторые инструменты для этого - взгляните на [http://blog.magnusmontin.net/2013/08/26/data-validation-in-wpf/](http://blog.magnusmontin.net/2013/ 08/26/data-validation-in-wpf /) – jHilscher
Если вы действительно хотите сделать это с помощью триггера стиля, вам придется написать свой собственный конвертер. – jHilscher
Вы можете проверить, соответствует ли длина текста 4 точным, тогда цвет может быть красным. Но для менее чем, больше, чем сценариев, вы должны использовать поведение. – AnjumSKhan