我们在Visual Studio中使用WPF开发了一个非常简单的应用程序,用于向数据库添加数据。它具有对数据的验证,如果验证失败,则会出现红色错误消息,指出错误所在,并且带有无效数据的文本框被红色边框包围。 在调试模式下,这一切正常。当我们进行发布构建或在VS中以发布模式运行应用程序时,红色边框不存在,但是红色错误消息仍然出现,表明验证仍然成功。
为什么在调试中会显示红色边框,而在发行版中却不会显示红色边框?有人遇到过类似的问题吗?有人可以指出我应该朝我看的方向吗?
如果我在代码中添加了断点,即使在高级构建设置>调试信息已满的情况下,并且在调试属性中也禁用了公正代码,在发布模式下也不会命中这些断点。
任何帮助将不胜感激!
已编辑:
XAML代码
<TextBox Text="{Binding CredentialLogin, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Grid.Row="1" Grid.Column="2" Margin="4">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsLoginValid}" Value="False">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
C#代码
var result = _validator.Validate(validationModel);
if (!result.IsValid)
{
if (result.Errors.Any(e => e.PropertyName.Equals($"Entity.{nameof(SystemCredential.Username)}",
StringComparison.InvariantCultureIgnoreCase)))
IsLoginValid = false;
foreach (var error in result.Errors)
{
ValidationMessages.Add(error.ErrorMessage);
}
NotifyOfPropertyChange(nameof(ValidationMessages))
NotifyOfPropertyChange(nameof(IsLoginValid));
return false;
}
这是代码的略短版本,有更多的验证,但我只显示了一个用户名,其余的几乎相同,只是其他属性