잠토의 잠망경

[WPF] MVVM Mouse Event 처리 본문

공부/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);
        }
Comments