두 개의 Datagrid가 있습니다. 하나 이상의 행을 두 번 클릭하여 두 항목 사이에서 항목을 전환 할 수 있습니다. doubleclick 이벤트는 선택된 항목 목록을 viewmodel로 보내는 명령에 의해 처리됩니다. 이상한 상호 작용 방아쇠 행동
그래서 내가 트리거에서 Datagrid 일이 있습니다<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick" SourceName="lstProducts">
<cmd:EventToCommand Command="{Binding Path=Add}"
CommandParameter="{Binding ElementName=lstProducts, Path=SelectedItems}" />
</i:EventTrigger>
</i:Interaction.Triggers>
그리고에서 Datagrid 2 트리거 : 나는 두 번
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick" SourceName="dgProducts">
<cmd:EventToCommand Command="{Binding Path=Remove}"
CommandParameter="{Binding ElementName=dgProducts,Path=SelectedItems}" />
</i:EventTrigger>
</i:Interaction.Triggers>
매번 그것을 추가를 호출하여 데이터 그리드를 클릭하여 명령을 제거합니다. 하지만 두 Delegate Command 메쏘드 안에서 debug Point를 설정하면 하나만 입력됩니다. 내가 그것을 하나만 설정하면 어느 것에 관계없이 그것을 입력 할 것입니다.
예를 들어 첫 번째 DataGrid를 클릭하면 Add Command가 호출되어 중단 점에서 중단됩니다. 하지만 제거 할 중단 점을 설정할 때도 있지만 둘 다 설정할 수는 없습니다.
은 내가 여기서 SourceName 심지어 SourceObject을 적용하는 시도했지만 늘어쩌면 사람이 어떻게 해결 알고 .. 도움?
아무도 해결책을 모릅니다. –
"내가 추가 및 제거 명령을 호출하는 Datagrid를 두 번 클릭 할 때마다"부분을 이해할 수 없습니다. 이 줄이 생길 때까지는 "선택 컨트롤을 많이 선택하십시오"라고 생각했습니다. 그러나이 경우 각 더블 클릭에 대해 하나의 핸들러 만 호출됩니다. – Rafal
다른 명령을 호출하는 각 Datagrid에 대해 MouseDoubleClick Trigger를 추가했습니다. 따라서 첫 번째 DataGrid를 클릭하면 Add Command 만 호출해야하고 두 번째 DataGrid에서는 Remove 명령 만 호출해야합니다. 그러나 두 가지 모두를 요구합니다. –