예를들어 View의 UserControl의 DataContext에 데이터를 주입하고
<local:CardCancelControl DataContext="{Binding CardCancelData}" />
이런식으로...
유저컨트롤에서 버튼 커맨드를 넣었을때
<Button Content="확인" Command="{Binding DataContext.CardCancelCommand}" CommandParameter="Cancel" />
이런식으로 넣으면 안된다. datacontext안에 서 command를 호출하기 때문이다
이렇게 할려면 상위에서 DataContext를 빼야 작동한다.
그러면 상위에서 호출되게 할려면 어떻게 해야할까.
<Button Content="확인" Command="{Binding Path=DataContext.CardCancelCommand,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type local:PopupControl}}}" CommandParameter="Cancel" />
이렇게 하면 된다.
참고 : https://stackoverflow.com/questions/3404707/access-parent-datacontext-from-datatemplate
'wpf' 카테고리의 다른 글
Converter를 쓰지 않고 바인딩된 TextBlock에 글자를 추가하고 싶을때 (0) | 2017.09.06 |
---|---|
LIST의 UI에 즉각적으로 바인딩 업데이트를 하고 싶을때.. (0) | 2017.08.22 |
ViewModel 끼리의 통신 (0) | 2017.08.08 |
해상도에 따른 이미지 크기 변경 (0) | 2017.08.07 |
CommandParameter를 이용하여 List 안에 버튼 파라미터 전달 (0) | 2017.07.25 |