標準の画像コントロールでマウスのダブルクリックを達成するために対話機能を使用しようとしています。 ImageControlはUserControl上にあり、マウスのダブルクリックを処理するメソッドはビューモデル上にあります。WPF:インタラクションを使用して画像をマウスでダブルクリック
1)ユーザーコントロール:
<ItemsControl Grid.Row="0" ItemsSource="{Binding SelectedEventPhotoList}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Name="SelectedListView">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" Columns="3"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Stretch="None">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<ei:CallMethodAction MethodName="DblClick" TargetObject="{Binding}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Image>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
3)ビューモデル:コードは以下の通りである
public void DblClick()
{
MessageBox.Show("Double click!");
}
しかし、それは動作しません。
UPDATE:
私はこれをしなかったが、それは動作しません:
1)XAML:
<ItemsControl Grid.Row="0" ItemsSource="{Binding SelectedEventPhotoList}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Name="SelectedListView">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1" Columns="3"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}">
<Image.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding MouseDoubleClickCommand}"/>
</Image.InputBindings>
</Image>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
2)ビューモデル:
public DelegateCommand MouseDoubleClickCommand { get; private set; }
コンストラクタで:
MouseDoubleClickCommand = new DelegateCommand(DblClick);
て、コメントを追加する方法:
public void DblClick()
{
MessageBox.Show("Double click!");
}
動作しません。元の投稿の更新セクションを見て、私が行ったことを見てください。 – tesicg
ところで、私はプリズムを使用します。 – tesicg
私の編集を参照してください。おそらくRelativeSourceを使用してコマンドにバインドする必要があります。 – mm8