Wpf Listview控件模板。如何将事件添加到命令?

Wpf Listview控件模板。如何将事件添加到命令?,wpf,listview,Wpf,Listview,你好, 我试图为listview控件模板中包含的按钮向命令触发器添加一个事件。我们有一个运行在客户端触摸屏上的应用程序,它对按钮按下过于敏感。我想处理buttons PreviewMouseUp事件来解决这个问题(当前,当他们按下按钮时,它也会按下按钮下面的内容,例如,按下按钮两次) 但是,命令处理程序代码在我的视图模型中没有被命中 任何帮助都将不胜感激。通过按钮将IshitteVisible设置为“True”。 <ListView x:Name=

你好,

我试图为listview控件模板中包含的按钮向命令触发器添加一个事件。我们有一个运行在客户端触摸屏上的应用程序,它对按钮按下过于敏感。我想处理buttons PreviewMouseUp事件来解决这个问题(当前,当他们按下按钮时,它也会按下按钮下面的内容,例如,按下按钮两次)

但是,命令处理程序代码在我的视图模型中没有被命中


任何帮助都将不胜感激。

通过按钮将
IshitteVisible
设置为“True”。


<ListView 
                    x:Name="ListViewPoducts"
                    SelectionMode="Single"
                    ItemsSource="{Binding ProductGroups}"
                    SelectedItem="{Binding SelectedProductGroup}"
                    ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                    ScrollViewer.VerticalScrollBarVisibility="Auto"
                    Background="{StaticResource NouvemLightBackgroundBrush}">

            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Vertical" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>

            <ListView.ItemContainerStyle>
                <Style TargetType="{x:Type ListViewItem}">
                    <Setter Property="Width" Value="Auto"/>
                    <Setter Property="Height" Value="Auto"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListViewItem">
                                <Border  Background="Transparent" >
                                    <Button Name="button" Style="{StaticResource StyleButtonTouchscreenMenu}" IsHitTestVisible="False">
                                        <Grid>
                                            <TextBlock Text="{Binding Name}" 
                                       FontSize="{Binding Source={x:Static global:ApplicationSettings.TouchscreenMenuButtonFontSize}}"
                                       HorizontalAlignment="Center" 
                                       VerticalAlignment="Center" 
                                       TextAlignment="Center" 
                                       TextWrapping="Wrap" />
                                        </Grid>
                                        <i:Interaction.Triggers>
                                            <i:EventTrigger EventName="PreviewMouseUp">
                                                <command:EventToCommand Command="{Binding GroupSelectedCommand}" />
                                            </i:EventTrigger>
                                        </i:Interaction.Triggers>
                                    </Button>
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter TargetName="button"  Property="Background" Value="{StaticResource NouvemSecondaryMainBrush}"/>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ListView.ItemContainerStyle>
            <ListView.Resources>
                <Style TargetType="{x:Type ScrollBar}" BasedOn="{StaticResource StyleScrollBarTouchscreenNarrow}"/>
            </ListView.Resources>
        </ListView>
我想出来了。只需要将我的event to命令绑定到根元素数据上下文

谢谢

<ListView 
                    x:Name="ListViewPoducts"
                    SelectionMode="Single"
                    ItemsSource="{Binding ProductGroups}"
                    SelectedItem="{Binding SelectedProductGroup}"
                    ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                    ScrollViewer.VerticalScrollBarVisibility="Auto"
                    Background="{StaticResource NouvemLightBackgroundBrush}">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Vertical" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>

            <ListView.ItemContainerStyle>
                <Style TargetType="{x:Type ListViewItem}">
                    <Setter Property="Width" Value="Auto"/>
                    <Setter Property="Height" Value="Auto"/>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListViewItem">
                                <Border  Background="Transparent" >

                                    <i:Interaction.Triggers>
                                        <i:EventTrigger EventName="PreviewMouseUp">
                                            <command:EventToCommand Command="{Binding DataContext.HandeProductionProductGroupSelectionCommand, ElementName=ListViewPoducts}"/>
                                        </i:EventTrigger>
                                    </i:Interaction.Triggers>
                                    <Button Name="button" Style="{StaticResource StyleButtonTouchscreenMenu}" IsHitTestVisible="False">
                                        <Grid>
                                            <TextBlock Text="{Binding Name}" 
                                       FontSize="{Binding Source={x:Static global:ApplicationSettings.TouchscreenMenuButtonFontSize}}"
                                       HorizontalAlignment="Center" 
                                       VerticalAlignment="Center" 
                                       TextAlignment="Center" 
                                       TextWrapping="Wrap" />
                                        </Grid>
                                    </Button>
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter TargetName="button"  Property="Background" Value="{StaticResource NouvemSecondaryMainBrush}"/>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </ListView.ItemContainerStyle>
            <ListView.Resources>
                <Style TargetType="{x:Type ScrollBar}" BasedOn="{StaticResource StyleScrollBarTouchscreenNarrow}"/>
            </ListView.Resources>
        </ListView>