목록의 각 항목에 대해 사용자 정의 컨트롤을 설정하기 위해 INotifyPropertyChanged를 상속받은 complext 개체의 ObservableCollection에 ItemsControl을 반복합니다. ItemsControl에 대한 내 코드는 다음과 같습니다.WPF OnPropertyChanged ItemsControl 내의 사용자 정의 컨트롤
<ItemsControl ItemsSource="{Binding Path=.ViewModel.Objects}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<c:UserControl CurrentData="{Binding}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
바로 지금 사용자 컨트롤이 매우 간단합니다. 그것은 ObservableCollection에서 텍스트를 출력 할 수 있다는 점에서 작동합니다. 아래에 내 코드입니다 :
public static DependencyProperty CurrentDataProperty = DependencyProperty.Register("CurrentData",
typeof(MyData),
typeof(MyUserControl));
public Character CurrentData{
get {
return (MyData)GetValue(CurrentDataProperty);
}
set {
SetValue(CurrentDataProperty, value);
}
}
public MyUserControl() {
InitializeComponent();
}
내 문제는 내 CurrentData.OnPropertyChange
이벤트에 대한 이벤트 처리기를 추가 할 수있는 지점이 결코 없다는 것입니다. 내 XAML은 바인딩되지만 좀 더 복잡한 결정을 내릴 수 있기를 원하지만 MyUserControl()
동안 데이터는 null이됩니다. 이러한 이벤트에 핸들러를 바인딩 할 수있는 방법이 있습니까? 아니면이 모든 것을 잘못하고 있습니까?
CurrentData
종속성 속성을 등록하고 콜백에서 이벤트 핸들러를 연결 (및 이전 데이터에서 그들을 벗기기) 때 속성 변경 콜백을 지정할 수 있습니다