2013-05-15 4 views
0

나는 usercontrol이 포함 된 창을 가지고 있습니다. usercontrol에는 Windows viewmodel의 값에 바인딩해야하는 종속성 값이 있습니다.뷰에서 ViewModel의 값을 usercontrol에 바인딩하는 방법

그러나 무엇을 시도해도 null으로 끝납니다.

그래서 코드를 추가 할 시간입니다.

여기는 내 usercontrol을 추가하는 곳이며, 이것이 내 문제가있는 곳이라고 가정합니다. "PlantToSearch"속성을 usercontrol에서 viewmodel의 "SelectedPlant"에 바인딩하려고합니다.

<my:BomSearchControl Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Left" 
          PlantToSearch="{Binding RelativeSource={RelativeSource 
           FindAncestor, AncestorType={x:Type local:SaveAsWindow}}, 
           Path=DataContext.SelectedPlant}" 
         Margin="4" VerticalAlignment="Top" > 
    </my:BomSearchControl> 

은 내가 SaveAsWindow의 데이터 컨텍스트를 가리려고했지만이 작동하지 않습니다. 내 BomSearchControl에

, 나는 종속성 속성에 대해 다음과 같은 코드를 가지고 :

public static DependencyProperty PlantToSearchProperty = DependencyProperty.Register("PlantToSearch", typeof(Plant), typeof(BomSearchControl)); 

    public Plant PlantToSearch 
    { 
     get { return (Plant)GetValue(PlantToSearchProperty); } 
     set { SetValue(PlantToSearchProperty, value); } 
    } 
+1

디버그 출력 창에 'BindingExpression' 오류가 표시됩니까? – DHN

+0

나는 DHN에 동의한다. 출력 창에서 바인딩 오류를 확인하십시오. –

+0

출력 창에 바인딩 오류가 없습니다. – Nicolai

답변

0

그래서,이 정말 당황했다. viewmodel에 UI를 설정 한 후 UI에서 해당 속성을 업데이트하는 것을 잊어 버렸습니다.

기본적으로 수정 프로그램은 내 세터에 OnPropertyChanged을 추가하는 것이 었습니다.

private Plant _selectedPlant; 
    public Plant SelectedPlant 
    { 
     get { return _selectedPlant; } 
     set 
     { 
      _selectedPlant = value; 
      OnPropertyChanged("SelectedPlant"); 
     } 
    } 
관련 문제