나는 ContextMenu
을 추가 한 ListBox
을 가지고 있습니다. ContextMenu
에있는 항목 중 하나를 명령에 바인딩하고이 명령에 전달 된 매개 변수를 ListBox
컨트롤의 현재 선택된 항목으로하고 싶습니다.도움말 소스를 명령 매개 변수로 바인딩
<ListBox x:Name="selectedVascularBeds"
ItemsSource="{Binding Path=UserSelectedVascularBeds}"
dd:DragDrop.IsDropTarget="True"
dd:DragDrop.DropHandler="{Binding}"
DisplayMemberPath="VascularBedName">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove" Command="{Binding Path=RemoveSelectedVascularBedCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type ListBox}},
Path=SelectedItem}"/>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
이 ListBox
는 뷰 모델 객체에 바인딩 된 사용자 컨트롤의 일부입니다 : 여기 내 XAML입니다. 기본 객체에 대한 내 command 메소드가 호출되지만 전달 된 매개 변수는 항상 null입니다.
CommandParameter
의 바인딩을 {Binding}
으로 변경하여 사용자 정의 컨트롤의 데이터 컨텍스트가 내 메서드에 전달되도록 테스트했습니다. 따라서 명령이 올바르게 작동하고 매개 변수를 올바르게 전달한다는 것을 알고 있습니다. 방금 ListBox
의 SelectedItem
속성에 액세스하기 위해 올바른 바인딩을 가져올 수 없습니다.
도움 말?