2010-08-20 1 views
0

간단한 경우에 지휘 어떻게 구현 :는 실버

<usercontrol> 
    <Views:UserListView x:Name="settingsTreeView"/> 
    <Button DataContext="{Binding ElementName=settingsTreeView, Path=SelectedItem}" 
      Command="{Binding CreateChildCommand}"/> 
</usercontrol> 

작업은 버튼 CreateChildCommand를 구현하는 DataContext에 바인딩하는 것입니다. DataContext는 트리 뷰에서 선택된 항목입니다. 아무 것도 일어나지 않습니다. 런타임에 단추 속성을 확인했습니다. 단추의 Command 및 DataContext 속성은 모두 null입니다.

질문 :

  1. 가 유효한 실행시의 DataContext를 변경할 수 있나요?
  2. 선택한 항목을 Command 개체로 전달하는 방법은 무엇입니까? 에 당신이 참조 할 수 있습니다 실버 라이트의 지휘에 관한

: 뭔가 잘못

http://johnpapa.net/silverlight/5-simple-steps-to-commanding-in-silverlight/ http://community.infragistics.com/silverlight/media/p/125526.aspx

http://houseofbilz.com/archives/2009/05/22/adventures-in-mvvm-commands-in-silverlight/ http://www.silverlightshow.net/items/Silverlight-4-How-to-Command-Control.aspx

답변

2

우선이 있는지 확인하는 것입니다 귀하의 바인딩에 실패했습니다. 이 경우 출력 로그에 일종의 출력이 표시되어야합니다. 런타임시 DataContext를 변경하는 것이 유효하며 선택한 항목을 명령에 전달하려면 단추의 CommandParameter 속성에 바인딩 할 수 있습니다. 출력 로그에 오류가 있는지 여부를 알려주십시오.

+0

안녕하세요. 바인딩 실패가 없습니다. SelectedItem 속성 인 에 대한 속성 변경 알림을 설정하려고했는데 제대로 작동했습니다. SelectedItem을 종속성 속성으로 만들었습니다. 이것은 현재 상황에서 최선의 결정이 아니지만. 선택한 항목을 변경하면 데이터 컨텍스트 전환없이 디자인하는 것이 좋습니다. – Dmitry