부모 컨트롤에서 databound 될 내 WPF usercontrol 종속성 속성을 만들었습니다. 값이 변경되면 알림을 보내려면 내 viewmodel에 INotifyPropertyChanged
을 구현했습니다.WPF 사용자 정의 컨트롤에서 종속성 속성을 업데이트하는 방법?
사용자 제어 코드 :
public bool IsVisibile {
get { return (bool) GetValue(IsVisibileProperty); }
set { SetValue(IsVisibileProperty, value); }}
public static readonly DependencyProperty IsVisibileProperty =
DependencyProperty.Register("IsVisibile", typeof(bool), typeof(UserControl),
new PropertyMetadata(default(bool), VisiblePropertyChangedCallback));
private static void VisiblePropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (dependencyPropertyChangedEventArgs.NewValue != null)
{
((UserControl) dependencyObject).IsVisibile = (bool) dependencyPropertyChangedEventArgs.NewValue;
}
}
부모 사용자 컨트롤 사용 :
<uc:UserControl IsVisible="{Binding IsViewModelVisible, UpdateSourceTrigger=PropertyChanged}"
은 "IsViewModelVisible"변경 후 속성 변경 이벤트 처리기가 호출되지 및 속성이 새로 고쳐지지 않습니다됩니다.
의견이 있으십니까?
물론 라울도 옳습니다. – Clemens
답장을 보내 주셔서 감사합니다. VM 속성에서 변경 알림을 보낼 때 종속성 속성이 자동으로 업데이트됩니까? – Ash
예, 바인딩이하는 일입니다. – Clemens