2010-01-28 6 views
0

MouseDoubleClick (또는 PreviewMouseDoubleClick)을 내 사용자 지정 WPF 컨트롤에 정의 된 사용자 지정 명령에 바인딩하고 싶습니다.ListBox MouseBinding이 작동하지 않습니다.

문제는 작동하지 않는다는 것입니다.

... 
<Popup> 
... 
<!--This CommandBinding **DOES NOT WORK** !--> 
<ListBox Grid.Row="1" 
    x:Name="PART_lBox"                  
    VirtualizingStackPanel.IsVirtualizing="True" 
    DisplayMemberPath="{TemplateBinding DisplayMemberPath}"                  
    ItemsSource="{TemplateBinding ItemsSource}"> 
<ListBox.InputBindings>                  
    <MouseBinding Command="{x:Static local:ListPicker.AcceptCommand}"                     
     MouseAction="LeftDoubleClick" /> 
</ListBox.InputBindings> 
</ListBox> 

<!--This CommandBinding **WORKS** !--> 
<Button Grid.Row="0" 
    Grid.Column="1"                   
    HorizontalAlignment="Right" 
    Command="{x:Static local:ListPicker.AcceptCommand}" 
    Content="Accept" /> 
... 
</Popup> 
+0

직접적인 방법은 없습니다. 그러나 사용자 정의 클릭 핸들러를 만들어이 작업을 수행 할 수 있습니다. 내가 한 것은 click 메서드가 호출 될 때마다 타이머를 시작하는 클릭 카운터 클래스를 가졌습니다. 해당 시간 내에 클릭이 발생할 때 클릭 수를 증가시킵니다. 나를 위해 나는 각 클릭 사이의 간격으로 2000 밀리 초를 가졌다. 얼마나 많은 정확한 클릭이 있었는지 알고 싶다면 해당 클래스의 ClickCount 속성을 사용해야합니다. 한 번의 클릭, 두 번 클릭 및 세 번 클릭에 대해 서로 다른 동작을 수행하는 상황에서 사용해야했습니다. HTH –

답변