DependencyProperty가있는 UserControl이 있습니다. 데이터 바인딩 표현식을 사용하여 호스트 윈도우에서 값을 설정합니다. 그러나 예상대로 작동하지 않습니다. 사용자 컨트롤의 코드 숨김에서Databind를 사용할 수 없습니다. DependencyProperty
발췌문 : 아무것도 어떻게됩니까
<CasingEditor:CasingListView x:Name="_casingListView"
ViewModel="{Binding CasingListViewModel}" />
:
public class ViewBase : UserControl
{
public static readonly DependencyProperty ViewModelProperty
= DependencyProperty.Register(
"ViewModel", typeof(ViewModelBase), typeof(ViewBase));
public ViewModelBase ViewModel
{
get { return GetValue(ViewModelProperty) as ViewModelBase; }
set
{
SetValue(ViewModelProperty, value);
}
}
}
그리고 XAML (: CasingListView이 ViewBase에서 상속 주)에서
. 특히 setter는 호출되지 않으며 속성은 null로 유지됩니다. 다른 속성 (DataContext)에 바인딩하려고했기 때문에 소스 속성CasingListViewModel
에 값이 있다는 것을 알았습니다. 제대로 작동했습니다.
종속성 속성이 데이터 바인딩 될 수 있다고 생각했습니다. 내가 잘못?
관심 없어, 왜 DataContext에 바인딩하지? –
좋은 질문입니다! 실제로, 우리는 아마 할 수 있었다. 그러나 이미 ViewModel 속성을 설정할 것으로 기대하는 코드가 있습니다. 또한 다른 사용자 컨트롤의 다른 속성에 동일한 문제가있어이를 작동시키는 방법을 배우고 싶습니다. –
어떻게 CasingListViewModel이 선언 되었습니까? 창 리소스 또는 속성입니까? –