首页 > 解决方案 > 调试和发布构建之间的 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; 
    }

这是代码的略微缩短的版本,还有更多验证,但我只显示用户名一个,其余几乎相同,只是其他属性

标签: c#wpfvisual-studiofrontend

解决方案


推荐阅读