我试图在我的一个UserControls中禁用一些用于显示数据(而不是编辑)的文本框.但是,由于某种原因,我无法正确禁用textBoxes.
我将"readAuthorization on readWriteAuthorization"设置为true,textBoxes被数据绑定为正确的属性.
我还在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中使用Windows窗体(Visual Studio 2008)
编辑:代码片段和属性取自我的客户对象.日期表示客户帐户的开立,最后更改和关闭.它们永远不应该被编辑,实际上在旧的sollution中它们由textLabels表示,但是我们现在想要使用文本框并使属性的CanWriteProperty为false.
我意识到信息可能有点稀缺,但我正在寻找在这个过程中我可能忘记的东西.
编辑:我们也在使用CSLA,我猜(我对这件事情我是新手)这与我们想要这样做的原因有关.
编辑(Sollution):正如您在下面的答案中所看到的,问题是我没有CurrentItemChanged
像我应该那样设置事件.
如果您试图让它们只读,那么只需将.ReadOnly属性设置为true即可.
或者,如果您从未使用过这些文本框进行编辑,那么可能只需使用Label?
编辑: 啊,它似乎更多的是一个CSLA框架问题,而不是一个纯粹的窗体问题.在这个问题之前我从未听说过CSLA,但它看起来很有趣.