UserControl1.Changed += UserControl1_Changed;
Обновите свой элемент управления, включив в него следующее:
// A delegate type for hooking up change notifications.
// This is _what kind_ of event you want. It sets the signature your event handler methods must have.
public delegate void ChangedEventHandler(object sender, EventArgs e);
//the actual event
public event ChangedEventHandler Changed;
// Method to raise/fire the Changed event. Call this whenever something changes
protected virtual void OnChanged(EventArgs e)
{
ChangedEventHandler handler = Changed;
if (handler != null) handler(this, e);
}
//and update your existing SetValue() function like so:
public void SetValue(string aValue)
{
txtValue.Text = aValue;
OnChanged(EventArgs.Empty);
}
Вы можете изменить свою подпись на мероприятии, чтобы передавать любую информацию, которую хотите & mdash; например старое или новое значение свойства (или оба). Я просто использовал стандартные аргументы события для примера.
И говоря, или свойства, не пишите отдельные методы Get / Set в C #, как вы только что написали. Если вы обнаружите, что делаете это, вы, вероятно, захотите использовать вместо этого свойство, которое автоматически обеспечит правильную семантику get / set:
public string Value
{
get { return txtValue.Text;}
set {txtValue.Text = value; OnChanged(EventArgs.Emtpy); }
}