在WPF中,调用datagrid.CancelEdit()后DataGridTextColumn的值不会回滚

2024-01-11

我有一个包含两个文本列的数据网格。允许用户修改默认值(1)。单击按钮时,如果用户按“是”,我将显示一条确认消息,数据网格文本列的值应使用新值保存,如果是“否”,网格文本列的值应滚动/重置回默认值或以前的值。问题在于,当用户单击确认消息中的“否”按钮时,数据网格文本列值不会回滚或重置为默认值。请帮我。 看法:-

                  x:Name="datagrid_range_targets" local:SetMinWidthToAutoAttachedBehaviour.SetMinWidthToAuto="true"
                  ItemsSource="{Binding RangeData, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" 
                  Margin="0,5,5,0"  Loaded="OnUserControlLoaded" Unloaded="OnUserControlUnloaded" Style="{StaticResource style_data_grid}">
            <DataGrid.Resources>
                <Style x:Key="errorStyle" TargetType="{x:Type TextBox}">
                    <Setter Property="Padding" Value="-2"/>
                    <Style.Triggers>
                        <Trigger Property="Validation.HasError" Value="True">
                            <Setter Property="Background" Value="Red"/>
                            <Setter Property="ToolTip" 
                             Value="{Binding RelativeSource={RelativeSource Self},
                             Path=(Validation.Errors)[0].ErrorContent}"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.Resources>

            <DataGrid.Columns>
                <DataGridTextColumn x:Name="col_range_targets_range"
                                    Width="Auto"
                                    Binding="{Binding Name}"
                                    Header="Range" IsReadOnly="True" />

                <DataGridTextColumn x:Name="col_budget_report_year1"
                                    Width="Auto" 
                                    Header="Year 01" EditingElementStyle="{StaticResource errorStyle}">
                    <DataGridTextColumn.Binding>
                        <Binding Path="budgetReportYear1" Mode="TwoWay"
                                >
                            <Binding.ValidationRules>
                                <local:GreaterThanOrEqualLessThanOrEqual Max="99"
                                                                        Min=".0000001" />
                            </Binding.ValidationRules>
                        </Binding>
                    </DataGridTextColumn.Binding>
                </DataGridTextColumn>
                <DataGridTextColumn x:Name="col_budget_report_year2"
                                    Width="Auto" 
                                    Header="Year 02" EditingElementStyle="{StaticResource errorStyle}">
                    <DataGridTextColumn.Binding>
                        <Binding Path="budgetReportYear2" Mode="TwoWay"
                                 UpdateSourceTrigger="Default">
                            <Binding.ValidationRules>
                                <local:GreaterThanOrEqualLessThanOrEqual Max="99"
                                                                         Min="0.0000001" />
                            </Binding.ValidationRules>
                        </Binding>
                    </DataGridTextColumn.Binding>
                </DataGridTextColumn>
 <Button x:Name="btn_Set_mulutiplier"  Click="btn_Set_mulutiplier_Click" Content="Set multiplier" 
                                               Style="{StaticResource button_SetMultiplier}"  />
               View Model-
                    private double _budgetReportYear1 = 1;
    private double _budgetReportYear2 = 1; public double budgetReportYear1
    {
        get { return _budgetReportYear1; }
        set
        {
            _budgetReportYear1 = value;
            Onchanged("budgetReportYear1");
        }
    }


    public double budgetReportYear2
    {
        get { return _budgetReportYear2; }
        set
        {
            _budgetReportYear2 = value;
            Onchanged("budgetReportYear2");
        }
    }
     Code Behind:-
               private void btn_Set_mulutiplier_Click(object sender, RoutedEventArgs e)
    {
        string message = "Do you want to set multiplier?";
        string caption = "Confirmantion";
        MessageBoxButton buttons = MessageBoxButton.YesNo;
        MessageBoxImage icon = MessageBoxImage.Question;
        if (MessageBox.Show(message, caption, buttons, icon) == MessageBoxResult.Yes)
        {
            datagrid_range_targets.CommitEdit();
        }
        else
        {

             datagrid_range_targets.CancelEdit();


        } 

    }code here`

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在WPF中,调用datagrid.CancelEdit()后DataGridTextColumn的值不会回滚 的相关文章

  • 网格内的 ContentPresenter 可见性绑定不起作用?

    我有以下网格
  • 无法使用 DialogResult

    我尝试使用DialogResult检查一个Messagebox s 是 否 取消 我正在使用以下代码 我没有看到任何问题 DialogResult dlgResult MessageBox Show Save changes before
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • VisualStateManager 和生成的转换

    正当我以为我明白的时候VisualStateManager 有些事情证明我错了 我正在使用 WPF 4 并且尝试简单地在鼠标悬停时放大某个项目 并在鼠标离开时将其缩小 我想我只需定义每个状态VisualStateGroup然后指定一个Vis
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • CommandManager.InvalidateRequerySuggested 不会导致对 MVVM-Light 中的 CanExecute 进行重新查询

    我正在使用 MVVM Light RelayCommand private ICommand myRevertCmd public ICommand Revert get if myRevertCmd null myRevertCmd ne
  • 需要“依赖属性”的简短而清晰的定义

    我试图弄清楚依赖属性到底是什么 但是当我在任何地方寻找定义时 我只找到 如何使用 而不是 它是什么 想象一下 您在面试时被问到 什么是依赖属性 你的答案是什么 DependencyProperty 是一个属性 其值取决于 或可以取决于 某些
  • WPF ListView/Gridview 允许用户选择多个项目并将它们分组在一起

    我在 MVVM 应用程序中有一个 WPF ListView GridViwe GridView 绑定到 ViewModel 中的列表 要求是用户应该能够选择网格视图的多行 右键单击它并看到上下文菜单 将这些行组合在一起 选择后 所有这些项目
  • WPF 创建同级窗口并关闭当前窗口

    我需要的是我的窗口类中的这样一个事件处理程序 void someEventHandler object sender RoutedEventArgs e MyNewWindow mnw new MyNewWindow mnw Owner W
  • 不将 ViewModel 放置在单独的程序集中有充分的理由吗?

    我正在 WPF 中使用 MVVM 模式开发一个项目 MVVM 的主要优势之一是保持业务逻辑和表示之间的清晰分离 为了测试所有内容实际上的分离程度 周末我将所有 ViewModel 模型和业务逻辑移动到一个单独的 dll 中 exe 被保留为
  • 在 ActionScript 中刷新数据网格时保持选择

    我正在使用 flashbuilder 开发我的第一个 AIR 应用程序 只是让您知道 我已经绑定了一个mx DataGrid组件到一个DataProvider这是一个mx HTTPService获取包含项目的 xml 文件 为了使数据保持最
  • 元素属性语法和属性属性语法之间有语义差异吗?

    我认为元素属性语法和属性属性语法在语义上没有太大区别 但是 我发现一定有什么不同 例如 下面的例子只是演示了一个简单的触发器
  • wpf,如何限制TextBox的MaxLength?

  • 将 BitmapImage 从 Resources.resx 分配给 Image.Source?

    我想分配一个BitmapImage从我的 Resources resx 到Image 之前我将 png 图像保存到 Resources resx 中 该图像现在位于 Resources logo png 中 在阅读了几篇 SO 帖子和其他文
  • 使用带有 prism 的 MVVM 在视图之间进行更改

    我是 WPF 新手 但根据我所读到的内容 构建应用程序的正确方法是在同一窗口上切换视图 我的意思是类似于带有菜单和显示视图的工作区的 框架 到目前为止我一直在关注这个http jesseliberty com 2011 01 06 wind
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

    我正在学习WPF 我想在 App xaml cs 中提供我自己的 Main 方法 而不是在 App g cs 中为我生成一个方法 然而 我不断遇到冲突 因为我还没有找到如何阻止生成额外的 Main 我的项目文件或其他地方是否有控制此设置的设
  • 带有空项目的组合框?

    假设我们有一个数据源绑定到数据库中的集合 当然不存在空项 如何添加一个将项目无效到 ComboBox 中 这样第一次加载时用户会看到一个空字符串 我不想将虚拟 空对象添加到集合中 最好在 XAML 中 有什么建议吗
  • Azure 可以运行 WPF 吗?

    我想编写一个在 Windows Azure 上运行的 ASP Net MVC 应用程序 该应用程序将使用 WPF 创建图像 在我开始写之前 这会起作用吗 Azure 是否具有渲染 WPF 所需的 DLL 包括 DirectX 和图形功能 我
  • WPF 媒体格式

    WPF 是否内置对任何音频和视频格式的支持 我将使用 MediaPlayer 和 MediaElement 类来构建一个小型媒体播放器 目前 我不想处理 NET 没有本机支持的编解码器和格式 WPF 默认支持视频格式 WMV MPEG 和一

随机推荐

  • 如何在相机中添加边框?

    我需要在反应本机相机视图的取景器中间添加一个方框 存储库中也没有有关它的信息 那里的问题也没有得到解答 您正在使用哪个模块 react native camera or react native camera kit 如果您使用react
  • java正则表达式模式未封闭的字符类

    我需要一些帮助 我越来越 Caused by java util regex PatternSyntaxException Unclosed character class near index 24 a zA Z 0 9 at java
  • Scala:为什么隐式找不到隐式 ExecutionContext?

    我有一个特点 trait Crawler implicit def system ActorSystem implicit def executionContext ExecutionContext implicit def materia
  • 如何安装较新的 swift-tools-版本?

    我第一次尝试创建一个新的 Swift 包 根据这个苹果文档 https developer apple com documentation swift packages bundling resources with a swift pac
  • 应用程序在列表视图适配器第二次播放音频时崩溃

    我的课程由包含曲目列表的列表视图组成 每个列表项由 播放 和 暂停 按钮组成 它应该在单击 播放 时播放曲目 在单击 暂停 时停止曲目 我没有使用不同的按钮 我正在使用一个按钮仅在单击黑白播放和暂停时更改其文本并相应地起作用 我面临以下问题
  • 在 VSCode 中调试 FastAPI 应用程序

    我正在尝试调试使用 FastAPI uvicorn 的应用程序 web api 我也在使用诗歌并在 vscode 中设置 projev 虚拟环境 i read this https fastapi tiangolo com tutorial
  • 如何在CSS中从上到下堆叠div

    我有一个这样的列表 div class item 1 div div class item 2 div div class item 3 div div class item 4 div div class item 5 div 使用 cs
  • HttpClient 返回特殊字符但没有可读内容

    我正在尝试使用 async await 和 HttpClient 下载网页 但只得到一个充满特殊字符的字符串 代码就像 static async void DownloadPageAsync string url HttpClient cl
  • Flutter - 跨多个设备的端到端加密的密钥存储

    我正在编写一个 flutter 应用程序 用户基本上可以在其中创建注释 我编写了代码来为用户创建私钥 稍后用于加密他们的数据 加密数据存储在 Firebase Firestore 中 当检索他们的数据时 将使用他们的密钥对其进行解密 我看过
  • TensorFlow:“模块”对象没有属性“SessionRunHook”

    我在 Ubuntu 16 04 上运行 TensorFlow r0 10 版本 我已经能够运行一些基本教程 包括 MIST 字符识别教程 我正在努力完成CIFAR 10 https www tensorflow org versions r
  • 在线和离线用户实时使用 strope.js

    我在用strope js用于连接的 javascript 客户端库xmpp server openfire 使用下面的代码 var BOSH SERVICE http 127 0 0 1 7070 http bind connection
  • 将表单另存为图像(屏幕截图)

    我有两种形式 表格 1 包含我需要截图的内容 表格 2 包含图形绘制 该表格始终位于顶部但透明 我需要对第一个表单进行屏幕截图 而不将其放在表单 2 之上 也不包含表单 2 中的内容 这是我正在处理的一些问题 我正在努力修复 Private
  • Android checkbox.isChecked() 无法正常工作

    我有一个ListView其中一个checkbox显示在每行中 每一次checkbox被触摸 我检查它是否被选中 但每次 第一项总是返回false 但是 如果选中第 2 项 则 ischecked 第一项的复选框的方法总是返回true 这是我
  • 捕获 Ruby on Rails 应用程序的屏幕截图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 Rails 应用程序 我想在用户输入 URL 时捕获网页的屏幕截图 是否可以在 Rails
  • SVN + SASL + ActiveDirectory:如何

    我正在尝试设置 SVN 以针对 ActiveDirectory 进行身份验证 我知道如果您将 SVN 设置为使用 Apache 提供服务 这是可能的 但这样做会带来太多开销 并且 SVN 运行速度太慢 通过阅读 SVN 文档 听起来现在应该
  • Python / Excel 自动化 - 将 2 个单元格中的文本放入 1 个单元格中

    我正在使用 python 自动执行使用 Excel 工作表列表创建多个名称标签的过程 我的问题是 我需要获取 名称 列和 企业 列值并将它们放入新文档的单个单元格中 像这样 To this 现在我正在使用 openpyxl 虽然我设法转移其
  • 在到期日期前“x”天启动 Sharepoint 工作流程

    我想在 Sharepoint 列表上创建工作流程 它应该发送通知电子邮件 问题是我希望此工作流程基于到期日期 在到期日期前 30 天发送电子邮件 并且我不创建或更新任何新的列表项 我知道只有在更改 创建任何项目时才能创建工作流程 但我在网上
  • 如何使用 .NET 检索数码相机拍摄的照片的属性?

    最好在 VB Net 中 但 C 也可以 我如何访问数码相机添加到文件中的额外属性 例如Date Picture Taken Shutter Speed or Camera Model 我维护一个库 为从各种文件格式中提取图像元数据提供全面
  • 代码:Blocks Mingw 编译器错误:可变大小对象可能未初始化

    我正在使用 C 创建一个简单的终端幻想游戏 我似乎遇到了错误 错误 可变大小的对象 项目 可能未初始化 这是代码 string useItem int item string items item HP Potion Attack Poti
  • 在WPF中,调用datagrid.CancelEdit()后DataGridTextColumn的值不会回滚

    我有一个包含两个文本列的数据网格 允许用户修改默认值 1 单击按钮时 如果用户按 是 我将显示一条确认消息 数据网格文本列的值应使用新值保存 如果是 否 网格文本列的值应滚动 重置回默认值或以前的值 问题在于 当用户单击确认消息中的 否 按