Оба System.Windows.Forms.CheckBox
(WinForms) и System.Windows.Controls.CheckBox
(WPF) имеют свойство Tag
с общедоступными get
и set
средствами доступа. Это связано с тем, что в каждом случае есть базовый класс, предоставляющий такое свойство (в случае WinForms это Control.Tag
, а в случае WPF это FrameworkElement.Tag
) .
Обратите внимание, что свойство Tag
имеет тип object
. Все, что можно назначить экземпляру object
, можно назначить свойству Tag
. В частности, вы можете назначить экземпляр string
. Когда вы читаете свойство Tag
, вы должны привести его обратно к string
:
// checkBox is CheckBox
string s = (string)checkBox.Tag;
В качестве альтернативы вы могли бы сказать
// checkBox is CheckBox
string s = checkBox.Tag.ToString();
Наконец, вы можете наследовать от CheckBox
и предоставить свойство Tag
, которое имеет тип string
, которое скрывает базовую реализацию:
class MyCheckBox : CheckBox {
public new string Tag { get; set; }
}