我正在編寫驗證規則到XAML中的各種控件的過程。我想在運行時將驗證規則附加到控件,而不是在XAML中。我正在考慮使用轉換器。但任何想法/想法都是更好的方法來完成這一點。WPF在運行時Binding.ValidationRules
示例代碼:
<TextBox Name="txtFirstName" > <TextBox.Text> <Binding Path="FirstName" ValidatesOnDataErrors="True" PropertyChanged" >
<Binding.ValidationRules>
<Binding Converter="{StaticResource validationConverter}"/>
</Binding.ValidationRules>
</Binding>
public class ValidationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
Binding b = new Binding();
b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
b.ValidatesOnDataErrors = true;
b.NotifyOnValidationError = true;
b.ValidationRules.Add(new RangeValidationRule { ErrorMessage = "Error shown from Converter ", MinValue = 10, MaxValue = 50 });
return b;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
感謝,
可能有一些[MVVM框架](http://channel9.msdn.com/Events/MIX/MIX10/EX15)這將支持這一點,但我不是這方面的專家。 –