protected ToolStripRadioMenuItem(TValue value) { Text = value.ToString(); Tag = value; Checked = value.Equals(Value); if (Checked) { oldChecked = this; } Click += delegate(object o, EventArgs e) { oldChecked.Checked = false; Checked = true; SetOrder(value); oldChecked = (ToolStripRadioMenuItem <TValue>)o; propertyOwner.InvokePropertyChange(propertyName); }; }