我试图在我的一个 UserControls 中禁用一些用于显示数据(而不是编辑)的文本框。但是,由于某种原因,我无法正确禁用文本框。
我已将“在 readWriteAuthorization 上应用授权”设置为 true,并且文本框已数据绑定到正确的属性。
我还在CanWriteProperty
我的对象中添加了以下几行:
if (propertyName == OpeningDateProperty.Name) return false;
if (propertyName == ChangeDateProperty.Name) return false;
if (propertyName == CloseDateProperty.Name) return false;
return base.CanWriteProperty(propertyName);
我无法弄清楚我在这里做错了什么。我最近在其他 UserControls 中实现了几乎相同的东西,没有任何问题......
我在 C# .NET (Visual Studio 2008) 中使用 Windows 窗体
编辑:代码片段和属性取自我的客户对象。日期代表客户账户的开立、最后更改和关闭。它们根本不应该被编辑,实际上在旧的解决方案中它们由 textLabels 表示,但是我们现在想要使用文本框并使属性的 CanWriteProperty 为 false。
我意识到这些信息可能有点稀缺,但我正在寻找我在这个过程中可能忘记的东西。
编辑:我们也在使用CSLA,我想(我对这件事很陌生)这与我们为什么要这样做有关。
编辑(解决方案):CurrentItemChanged
正如您在下面的回答中看到的那样,问题是我没有像我应该的那样设置事件。