gpt4 book ai didi

c# - IDataErrorInfo - 它是如何工作的

转载 作者:行者123 更新时间:2023-11-30 12:31:30 24 4
gpt4 key购买 nike

昨天,我问了一个关于 MVVM 验证的问题,有人用一段代码回答:https://stackoverflow.com/a/13387724/

我试图理解这段代码,但我就是不理解索引器部分。有人可以向我解释该代码是如何工作的吗?使用 IDataErrorInfo 时 get/set 到底是什么时候调用的?为什么他在 get-part 中返回 this[columnName]?

谢谢

最佳答案

在我写这篇文章时,他的代码有问题。如果被调用,getter 将抛出 StackOverflowException。

当绑定(bind)配置为执行验证时

<TextBox Text="{Binding Hurr, ValidatesOnDataErrors=true}" />

如果数据源对象实现IDataErrorInfo,绑定(bind)系统将会, 使用该接口(interface)的两个方法执行验证。

接口(interface)的索引器接受一个字符串,该字符串是要验证的属性的名称,并返回一个字符串,该字符串是属性当前值的验证错误(如果有)。

这方面的一个例子可能是......

var pet = new Pet();
var error = pet["Name"]; //"Your pet has no name!"
pet.Name = "Fido";
error = pet["Name"]; //"Come on, how unoriginal is that?"

他的特定代码示例正在处理奇怪的 getter/setter 中的验证。这不是一个关于如何实现 IDataErrorInfo 的通用示例,但更可能是他自己的个人代码的片段,带有他自己的个人风格。大多数人都有自己的实现方式,但有 9/10 的情况是 switch 语句,属性名称都是单独的 case

关于c# - IDataErrorInfo - 它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13394566/

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