如何访问 Validation.Errors.Count?
How to get access to Validation.Errors.Count?
我按照 CodeProject 上的示例进行操作:"Automatically validating business entities in WPF using custom binding and attributes" 我想添加一个在没有错误时启用的按钮。
我的 MainWindow.xaml 上有这条线:
<Button Height="23" Margin="38,63,0,0" Name="button1"
IsEnabled="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).Count}" />
我将使用转换器,但我需要知道输入的类型和 return 布尔值。
制作一个 属性 类似于如果计数为 0,则设置 false:
private bool _enableButton;
public bool ButtonEnabled
{
get { return _enableButton; }
set { _enableButton= value; }
}
在控制器代码的某处,设置:
ButtonEnabled = (items.Count == 0) ? false : true;
然后在您的 xaml 代码中,您不需要转换器,只需适当地绑定它即可。
p.s。请使用比我在示例中使用的名称更有意义的名称
托马斯,
在上面的例子中link,我们可以使用一个带有错误属性的模型对象。
我稍微修改了一下,如果有任何字段出错,我们的错误不为空 - 只有一个字段。
class 现在引发一些事件,以便在表单出现错误 added/removed 时可以对按钮的 IsEnabled 状态进行一些 "real time" 修改:
public class User : IDataErrorInfo, INotifyPropertyChanged
{
public string Error
{
get
{
return this["Name"];
}
}
那么按钮上的绑定就只有:
<Button
IsEnabled="{Binding Path=Error,
Converter={StaticResource stringToBooleanConverter}}" />
前提是转换器存在:
class StringToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
String s = value as String;
return String.IsNullOrEmpty(s);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
我测试了,可以用,有问题告诉我
我按照 CodeProject 上的示例进行操作:"Automatically validating business entities in WPF using custom binding and attributes" 我想添加一个在没有错误时启用的按钮。
我的 MainWindow.xaml 上有这条线:
<Button Height="23" Margin="38,63,0,0" Name="button1"
IsEnabled="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).Count}" />
我将使用转换器,但我需要知道输入的类型和 return 布尔值。
制作一个 属性 类似于如果计数为 0,则设置 false:
private bool _enableButton;
public bool ButtonEnabled
{
get { return _enableButton; }
set { _enableButton= value; }
}
在控制器代码的某处,设置:
ButtonEnabled = (items.Count == 0) ? false : true;
然后在您的 xaml 代码中,您不需要转换器,只需适当地绑定它即可。
p.s。请使用比我在示例中使用的名称更有意义的名称
托马斯,
在上面的例子中link,我们可以使用一个带有错误属性的模型对象。
我稍微修改了一下,如果有任何字段出错,我们的错误不为空 - 只有一个字段。
class 现在引发一些事件,以便在表单出现错误 added/removed 时可以对按钮的 IsEnabled 状态进行一些 "real time" 修改:
public class User : IDataErrorInfo, INotifyPropertyChanged
{
public string Error
{
get
{
return this["Name"];
}
}
那么按钮上的绑定就只有:
<Button
IsEnabled="{Binding Path=Error,
Converter={StaticResource stringToBooleanConverter}}" />
前提是转换器存在:
class StringToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
String s = value as String;
return String.IsNullOrEmpty(s);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
我测试了,可以用,有问题告诉我