공부/C sharp
[WPF] MVVM Mouse Event 처리
잠수함토끼
2021. 9. 5. 06:30
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ei="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate x:Key="mItemDT">
<Grid>
<Label
Content="{Binding Path=File_Name, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<ei:CallMethodAction MethodName="Control_OnMouseDoubleClick" TargetObject="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Label>
</Grid>
</DataTemplate>
</ResourceDictionary>
</UserControl.Resources>
<Grid DockPanel.Dock="Top" Height="200">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding ListItems, UpdateSourceTrigger=PropertyChanged}"
ItemTemplate="{StaticResource mItemDT}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
</Grid>
<Grid DockPanel.Dock="Top" Height="200">
<DataGrid
SelectedItem="{Binding SelecedItem, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True"
ItemsSource="{Binding ListItems, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<ei:CallMethodAction MethodName="Control_OnMouseLeftButtonDown" TargetObject="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>
</Grid>
// main
public void Control_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
CallbackFunction(SelecedItem);
}