c# - 调试和发布构建之间的 WPF 应用程序布局差异
问题描述
我们在 Visual Studio 中使用 WPF 制作了一个非常简单的应用程序,用于向数据库添加数据。它对数据进行验证,如果验证失败,则会出现红色错误消息,指示出了什么问题,并且带有无效数据的文本框被红色边框包围。这在调试模式下一切正常。当我们进行发布构建或在VS中以发布模式运行应用程序时,红色边框不存在,但仍然出现红色错误消息,表明验证仍然成功。
为什么在调试时会显示红色边框,但在发布时不会显示?有没有人有类似的问题?有人可以指出我应该看的方向吗?
此外,如果我在我的代码中放置断点,它们在发布模式下不会被击中,即使高级构建设置>调试信息已满,并且在调试属性中,just-my-code 被禁用。
任何帮助,将不胜感激!
编辑:
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;
}
这是代码的略微缩短的版本,还有更多验证,但我只显示用户名一个,其余几乎相同,只是其他属性
解决方案
推荐阅读
- python - 移动 app.py 和静态文件夹后,Flask 无法解析静态文件
- string - 从字符串中获取具有字符索引的子字符串
- android - 我如何知道应用程序在不同的国家/地区启动/更新
- php - Laravel - 验证数组输入请求数据在数据库中的唯一性
- ruby-on-rails - 确保随机生成的字符串是唯一的
- python-3.x - 为什么类不能充当 Python 中函数的封闭空间
- html - Github org-mode html 导出图片大小调整
- jquery - 如何转换此脚本以加载 ajax 页面而不是模态 div?
- sass - 如何根据角度的某些条件使用 scss 更改我的布局的背景颜色和颜色?
- java - 在 gridView 中加载图像有时会混淆