WPF:检测 C# 代码中的行验证错误

2023-11-30

我想完成一个非常简单的任务,但是到目前为止,这里的解决方案或其他找到的解决方案都没有帮助我:

我有一个WPFDataGrid,它绑定到类型化数据集。当我单击窗口中的“确定”按钮时,我想检测当前是否存在任何行验证错误。我想显示一个消息框并告诉用户解决这些错误。

我怎样才能实现这个目标?

EDIT
为了让我的问题更精确一点:

我绑定的类型化数据集是一个包含表的简单数据集。这些表是通过调用 WCF 服务来填充的,表中有 5 个文本列。其中一些列有长度限制(例如,一列只能占用 5 个字符)。

The ItemsSource of my GridView在代码中设置如下:

dgvData.ItemsSource = m_dataModel.TableName;

如果我在列中输入一些文本,一切都很好。在该列中输入超过 5 个字符,该行旁边会显示红色行错误标记。我还没有进行任何自定义验证。

我可以看到红色感叹号,但我无法在代码中确定它是否可见。我尝试过:

  • 使用数据集的HasErrors财产(回报false)
  • Validation.GetHasErrors(dgvData)回报false as well
  • H.B. 在他的评论中提到了解决方案,但它不起作用

我在这里不知所措 - 一定有一种简单的方法可以做到这一点?


好的,我已经解决了。以下是我想要的:

public static DataGridRow GetRow(DataGrid grid, int index)
{
    DataGridRow row = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(index);
    if (row == null)
    {
        // May be virtualized, bring into view and try again.
        grid.UpdateLayout();
        grid.ScrollIntoView(grid.Items[index]);
        row = (DataGridRow)grid.ItemContainerGenerator.ContainerFromIndex(index);
    }
    return row;
}

在我的“确定”按钮的代码中,我这样做:

for (int i = 0; i < dgvData.Items.Count; i++)
{
    DataGridRow row = GetRow(dgvData, i);
    if (row != null && Validation.GetHasError(row))
    {
        hasDataGridErrors = true;
        break;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF:检测 C# 代码中的行验证错误 的相关文章

  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中可空类型是什么?

    当我们必须使用nullable输入 C net 任何人都可以举例说明 可空类型 何时使用可空类型 https web archive org web http broadcast oreilly com 2010 11 understand
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 使用 SAXParser 从 XML 检索 HTML 编码文本

    这是我第一次使用 SAXParser 我在 Android 中使用它 但我认为这对这个特定问题没有影响 并且我正在尝试从 RSS 提要中读取数据 到目前为止 它在很大程度上对我来说工作得很好 但是当它到达包含 HTML 编码文本的标签时 例
  • 如何在django中存储用户数组?

    我有一个 django 模型 它基本上是一个名为Contexts 它包含一些字段 例如name description和一个用户 下面是定义的模型 class Contexts models Model context name model
  • 如何比较三个预训练模型的余弦相似度?

    我有两个语料库 一个包含所有女性领导人的演讲 另一个包含男性领导人的演讲 我想测试这样一个假设 一个语料库中两个单词之间的余弦相似度与另一个语料库中相同两个单词之间的余弦相似度显着不同 这样的 t 检验 或等效的 合乎逻辑并且可能吗 此外
  • 在 Azure Function 中运行 .exe 可执行文件

    我有可执行文件 abcd exe 它包含 与许多 dll 合并 是否可以为 abcd exe 创建 Azure Function 并在 Azure Cloud Functions 中运行它 abcd exe 应用程序 System Diag
  • 使用 SQLite 开发 AIR 应用程序的最佳实践

    我将开始做几个 Adob e AIR 项目 这些项目将使用SQLite提供的功能AIR 由于这是我第一次尝试这样做 我希望得到一些指导 技巧和开发最佳实践 由于此应用程序将访问本地数据库 因此我想我可以在应用程序启动时打开与数据库的连接 并
  • 如何将数组添加到ArrayList中?

    我有一个 int 3 3 数组 它只包含 0 或 1 个值 如果值为1 我想将ArrayList中该值的坐标添加为int 2 数组 但我不知道为什么它总是添加最后一个1值坐标 有什么问题 public static void main St
  • Laravel 5.1 Eloquent isFillable() 单元测试中的差异

    在单元测试中使用时 Eloquent 会忽略模型的可填充设置吗 在非测试情况下 我得到以下输出 这是正确的 因为模型只允许某些可填充字段 m new Model dd m gt isFillable nonexistent field gt
  • 为什么在访问 Ruby on Rails 应用程序中的用户页面时不断收到路由错误?

    我正在尝试向以下位置的微帖子添加评论https github com railstutorial sample app 2nd ed来自迈克尔 哈特尔 Railstutorial 看来如果用户没有发微博 就没有问题 我可以访问他们的页面 但
  • 使用 mongoose、gridfs-stream 和 multer 上传文件时出现 MongoError

    我正在使用 Express 4 运行multer gridfs 流 and mongoose使用 mongodb 我正在尝试上传文件并将其流式传输到 gridfs 执行此操作的快速路线定义为 app post uploadfile func
  • 使用python将灰度图像保存为4位png

    我正在寻找一种使用 python 将灰度图像保存为 4 位 png 的快速方法 我必须保存的图像很大 因此保存它们需要相当长的时间 假设我的图像存储在 numpy 数组中 dtype 8 位 使用 PyPng 我可以这样做 import p
  • C++ 概念相同且可赋值

    我最近一直在尝试 C 概念 我正在尝试以下范围扩展文档中的定义 http www open std org jtc1 sc22 wg21 docs papers 2016 n4569 pdf 的定义和用法Same让我困惑 由于我不知道的原因
  • SQL Server 2008 外键区分大小写

    SQL Server 2008 是否可能具有不区分大小写的数据 例如以下将返回数据 SELECT mycolumn FROM mytable WHERE mycolumn Case SELECT mycolumn FROM mytable
  • 在xcode中访问另一个类的变量

    我有一个balloonGameViewController h我制作的另一个课程叫做balloon h 我想访问我设置的一些变量balloon h来自viewController 我有什么办法可以实现这个目标吗 ballon h 中的变量是
  • 当排序很重要时,使用 for..in 迭代 JavaScript 对象属性和数组

    这已经是一个古老的时代了question我知道不使用的常见原因for in或者甚至可能在需要任何排序时反对 但我最近发现了这篇文章MDC在删除操作符上 跨浏览器问题 尽管 ECMAScript 使对象的迭代顺序依赖于实现 但似乎所有主要浏览
  • 使用 UIIImagePicker 的 CGAffineTransform 缩放 UIImage 并保存到 Parse SDK

    我使用以下代码来扩展我的UIImagePickerController CGAffineTransform translate CGAffineTransformMakeTranslation 0 0 71 0 This slots the
  • position_dodge的控制层次

    如果使用闪避条形图 是否有一种方法可以控制哪个元素绘制在另一个元素前面 ggplot mtcars aes x factor cyl fill factor vs geom bar position position dodge width
  • Spring Security REST 端点身份验证的意外行为?

    我们寻找的场景如下 客户端使用 REST 连接到 REST 登录 url Spring 微服务 使用 Spring Security 应该返回200 OK和一个登录令牌 客户端保留令牌 客户端使用相同的令牌调用其他 REST 端点 然而 我
  • 如何在UIWebview中获取当前正在播放的视频的url

    有没有办法获取当前播放视频的链接 我正在加载m youtube com 对于某些视频 它甚至没有进入代表 我也尝试使用 NStimer 但对于某些视频 它不是单击的网址 有一种巧妙的方法可以通过监听来做到这一点AVPlayerItemBec
  • WPF 有哪些绑定模式?

    我不明白WPF中的各种数据绑定模式 例如 One Way Two Way One Time etc 这些模式分别代表什么意思 什么时候应该使用它们 OneWay 当您希望绑定属性更新用户界面时使用此选项 TwoWay 这与以下行为相同One
  • WPF:检测 C# 代码中的行验证错误

    我想完成一个非常简单的任务 但是到目前为止 这里的解决方案或其他找到的解决方案都没有帮助我 我有一个WPFDataGrid 它绑定到类型化数据集 当我单击窗口中的 确定 按钮时 我想检测当前是否存在任何行验证错误 我想显示一个消息框并告诉用