我有多个RichTextBox,我想在它们上面存储一个布尔值,所以我可以为它们中的每一个访问它。有什么办法吗?
我尝试使用扩展方法,就像我为AppendText提供更多重载一样,但我没有运气。
答案 0 :(得分:0)
您可以添加所需的任何属性。如果您需要能够在设计时更改它(从属性编辑器),您只需要使用Browsable属性进行装饰。
其他可能有用的属性:
CategoryAttribute - 此属性表示您的属性网格属于您的属性。
DescriptionAttribute - 此属性为您的属性添加一个描述,该描述将作为属性网格底部的文本描述。
但是如果你不能修改现有的控件,你必须使用继承(在你的情况下从RichTextBox继承)。如果该类是密封的,那么我将创建另一个装饰当前的控件(装饰器模式)并在其上添加一个新属性。
答案 1 :(得分:0)
您可以使用标记属性。它在Control上的定义适用于所有控件,包括RichTextBox MSDN
答案 2 :(得分:0)
快速简单的解决方案(可能不那么优雅),但为了简单起见,您可以使用@Html.HiddenFor(x=>x.MyField1Bool).
创建隐藏字段,即如果您要回发到服务器。您当然需要为ViewModel创建额外的布尔字段。
另外,以防您计划使用javascript访问这些布尔值。您应该查看数据属性,例如:
<input type="text" data-flag="true"/>
这些在javascript中很容易访问。在Razor语法中,您只需将它们添加为属性。