클래스 클래스를 INotifyPropertyChanged를 구현하면 속성이 변경 될 때 이벤트를 처리 할 수 있습니다.
그래서, 간단한 속성에서 사용자의 속성을 변경해야합니까하려면 다음과 같이 더 많은 뭔가를
// will NOT raise event
public string Name { get; set; }
:뿐만 아니라 클래스에
// will raise event
public string Name
{
get { return _Name; }
set
{
if (_Name != value)
{
_Name = value;
OnPropertyChanged("Name");
}
}
}
private string _Name;
을 다음이에서 INotifyPropertyChanged를 구현 :
public event EventHandler<PropertyChangedEventArgs> PropertyChanged;
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
PropertyChanged(this, e);
}
protected virtual void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
이제 카테고리 상자를 ComboBox에 추가 할 때 Pro에 가입하십시오. pertyChanged 이벤트는 Name 속성이 변경 될 때마다 발생합니다.
더 나은 방법
당신의 콤보 상자를 채울 Binding 클래스를 사용하는 것이 좋습니다. 바인딩은 속성 값이 변경 될 때 자동으로 INotifyPropertyChanged를 사용하여 표시를 업데이트합니다.
답장을 보내 주셔서 감사합니다. 나는 지금 데이터 바인딩으로 나의 콤보 박스를 다시 코딩하려하고있다. – user1428252
나는 그것을 할 수 없다. ComboBox.DataBindings.Add 메서드를 사용해야합니까? 그렇다면, 그것을 사용하는 방법 사촌 나는 여러 가지 방법을 시도하고 그것을 작동하게 만들 수 없습니다. 내 데이터 소스는 List of (Category의) 상속을받는 클래스입니다. – user1428252
데이터 바인딩에 대한 경험이있는 대부분의 사람들은 WPF와 Silverlight를 사용하고 있습니다. WinForms와 바인딩으로 시작하는 좋은 장소는 다음과 같습니다 : http://stackoverflow.com/questions/29654/winforms-databinding-and-foreign-key-relationships and http://stackoverflow.com/questions/454959/winforms-databinding –