현재 UI가 업데이트되지 않아서 업데이트하고 싶습니다. 도와 주시면 감사하겠습니다. http://www.codeproject.com/Articles/10072/Simulated-Multiple-Inheritance-Pattern-for-C2 클래스 상속 NotifyPropertyChanged는 UI 업데이트가 실패합니다.
내 실제 응용 프로그램의 모양이 페이지에서 권장
나는 시뮬레이션 "2 개 클래스 상속"가 다음public class Item : INotifyPropertyChanged
{
private bool _isVisible;
public bool IsVisible
{
get
{
return _isVisible;
}
set
{
if (_isVisible == value)
return;
_isVisible = value;
OnPropertyChanged("IsVisible");
}
}
//NotifyPropertyChanged Implementation removed so the focus stays on problem...
}
public class ObjectItem : INotifyPropertyChanged
{
private bool _isExpanded;
public bool IsExpanded
{
get
{
return _isExpanded;
}
set
{
if (_isExpanded== value)
return;
_isExpanded= value;
OnPropertyChanged("IsExpanded");
}
}
//NotifyPropertyChanged Implementation removed so the focus stays on problem...
}
public class CombinedItem : Item
{
private readonly ObjectItem _objectItem = new ObjectItem();
public bool IsExpanded
{
get { return _objectItem.IsExpanded; }
set { _objectItem.IsExpanded = value; }
}
public static implicit operator ObjectItem(CombinedItem combinedItem)
{
return combinedItem._objectItem;
}
}
내가 지금 문제를 직면하고 그 속성으로 IsExpanded doesnt는 DataContext로 CominedItem을 가지고있을 때 UI에 올바르게 알립니다. IsVisible 속성은 예상대로 작동합니다.
public class CombinedItem : Item
{
private readonly ObjectItem _objectItem = new ObjectItem();
public bool IsExpanded
{
get { return _objectItem.IsExpanded; }
set
{
if (_objectItem.IsExpanded == value)
return;
_objectItem.IsExpanded = value;
OnPropertyChanged("IsExpanded");
}
}
public static implicit operator ObjectItem(CombinedItem combinedItem)
{
return combinedItem._objectItem;
}
}
이 방법으로 다시 OnPropertyChanged를 ("으로 IsExpanded")을 작성하지 않도록하는 방법이 있나요 :
내가 다음에 CominedItem을 변경 한 문제를 극복하기 위해. (나는 libaries/tools이 있다는 것을 알고 있습니다. 단지 쓸 필요가없고 속성을 선언해야합니다. pls는 그 속성을 선언해야합니다)
에 결합 할 수있다. – Sheridan