gpt4 book ai didi

wpf - 当输入错误时如何显示MessageBox,以及如何在WPF中使用MVVM还原TextBox的旧值

转载 作者:行者123 更新时间:2023-12-03 07:43:55 25 4
gpt4 key购买 nike

我一直在使用WPF及其内置的验证控件来保持安静。我在codeproject中浏览了一篇很棒的文章,其链接如下

http://www.codeproject.com/KB/WPF/wpfvalidation.aspx

我有一个客户的要求,我无法在WPF中使用MVVM满足要求。

问题如下:

有一个TextBox仅接受数字。
当用户输入数字以外的任何值时,我必须向他显示错误。错误应该

  • 突出显示文本框,提供一个工具提示
  • 在MessageBox中显示错误
  • 将TextBox还原为其以前的值

  • 例如,当加载 TextBox时,其初始值可能为10
    。然后,用户输入一些错误的值,例如“aa”。

    现在,我必须显示一个“错误值”的消息框,然后将值恢复为10。

    有很多文章和方法可以通过使用ErrorTemplate等在WPF中显示错误。
    <Style TargetType="{x:Type TextBox}"> 
    <Setter Property="Validation.ErrorTemplate">
    <Setter.Value>
    <ControlTemplate>
    <DockPanel LastChildFill="True">
    <TextBlock DockPanel.Dock="Right"
    Foreground="Orange"
    FontSize="12pt">
    !!!!
    </TextBlock>
    <Border BorderBrush="Green" BorderThickness="1">
    <AdornedElementPlaceholder />
    </Border>
    </DockPanel>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
    <Setter Property="ToolTip"
    Value="{Binding RelativeSource={RelativeSource Self},
    Path=(Validation.Errors)[0].ErrorContent}">
    </Setter>
    </Trigger>
    </Style.Triggers>
    </Style>

    但是,如何还原值并显示MessageBox。我知道可以使用代码隐藏文件中的事件来显示它,但我不想在代码隐藏文件中写入任何逻辑。我想使用MVVM 实现此功能

    样本插图将非常有帮助!

    最佳答案

    第二个问题的答案:构建一个messageboxservice,然后从您的viewmodel中调用它。您可以在所有wpf框架中找到mvvm messageboxservices。例如看肚带。

    撤消重做的事情,它是内置在wpf中的,因此strg + z可以工作。但是我还不知道如何使它与mvvm一起工作:)

    关于wpf - 当输入错误时如何显示MessageBox,以及如何在WPF中使用MVVM还原TextBox的旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852937/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com