내 WPF 응용 프로그램의 CLR 속성에서 종속성 속성으로 이동했습니다. 다음 코드는 다른 여러보기 모델에서 액세스해야하는 기본 클래스에 있다는 점에서 문제가 있습니다. CLR 속성 일 때 정적 이었지만 현재는 그렇지 않으므로 항상 설정하지 않은 뷰 모델에서 null을 반환합니다. 이 둘 사이에 방법이 있을까요?기본 클래스에서 정적이 될 종속성 속성이 필요합니다.
public Tuple<Guid, string> SelectedEntity
{
get { return (Tuple<Guid, string>)GetValue(SelectedEntityProperty); }
set { SetValue(SelectedEntityProperty, value); }
}
public static readonly DependencyProperty SelectedEntityProperty =
DependencyProperty.Register("SelectedEntity", typeof(Tuple<Guid, string>), typeof(MyViewModelBase), new PropertyMetadata(null));
왜 처음에는 종속성 속성을 사용하고 있습니까? 내가 아는 한, 데이터 바인딩을 가능하게하는 컨트롤 (예 : XAML)에 사용되고, 뷰 모델은'INotifyPropertyChanged' 구현에 충실해야하며 그게 전부다. –
나는 라인 아래 혜택 때문에 팀 리더. – Retrocoder
팀 리더에게 알려주십시오. 뷰 모델에서는 종속성 속성이 적합하지 않습니다. 그냥'INotifyPropertyChanged'를 구현하십시오. 이렇게하면 뷰 모델이 WPF와 독립적으로 유지되므로 DependencyObject에서 모든 VM 클래스를 파생시킬 필요가 없습니다. – Clemens