我在验证某个领域时遇到了麻烦。 我有一个名为Test的属性,其中包含抛出的代码 小于零时的异常,但验证不起作用。 我正在使用从视图调用的Web服务。 我想我忘了包含一些东西,但我不知道是什么。
谢谢你。
网页:
namespace MonitorizacionIncidencias.Views
{
public partial class TESTING : Page
{
private IncidenciasServiceClient proxy = new IncidenciasServiceClient();
public TESTING()
{
InitializeComponent();
proxy.NextCompleted += new EventHandler<NextCompletedEventArgs>(proxy_NextCompleted);
proxy.NextAsync(null, 9, false);
}
void proxy_NextCompleted(object sender, NextCompletedEventArgs e)
{
DataContext = e.Result;
}
}
}
XAML:
<TextBox Text="{Binding TEST, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" Height="23" HorizontalAlignment="Left" Margin="243,283,0,0" x:Name="textBox2" VerticalAlignment="Top" Width="120" />
型号:
[DataContract]
public class Incidencia
{
[DataMember]
public int TEST
{
get
{
return test;
}
set
{
if (value < 0)
throw new Exception("TEST EXCP");
test = value;
}
}
}
答案 0 :(得分:0)
你正在做大部分工作,但实际上并没有处理它产生的BindingValidationError event。
<强> e.g。将此添加到您的XAML中(即应用于文本框或其父容器):
BindingValidationError="MyBindingValidationError"
并将您的实际处理放在此处:
private void MyBindingValidationError(object sender,
ValidationErrorEventArgs e)
{
if (e.Action == ValidationErrorEventAction.Added)
{
textBox2.Background = new SolidColorBrush(Colors.Red);
}
else if (e.Action == ValidationErrorEventAction.Removed)
{
textBox2.Background = new SolidColorBrush(Colors.White);
}
}