首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Interaction.Triggers设置为ListBoxItem

将Interaction.Triggers设置为ListBoxItem
EN

Stack Overflow用户
提问于 2013-10-21 07:07:15
回答 3查看 5.3K关注 0票数 1

我已经将Interaction.Triggers设置为ListBox,并在“SelectionChanged”事件发生时执行相应的TargetedTriggerAction,如下所示。

代码语言:javascript
复制
<ListBox x:Name="WorksheetListBox" ItemsSource="{Binding WorkSheetCollection}"
                             ItemTemplate="{StaticResource workSheetTemplate}">                              
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectionChanged">
        <action:WorksheetListBoxAction />
    </i:EventTrigger>
  </i:Interaction.Triggers>
</ListBox>

但我的要求是,我需要将Interaction.Triggers设置为ListBoxItem的'PreviewMouseDown‘事件(注意:通过ItemsSource填充的ListBox )

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-21 07:31:44

你可以试试这样的东西:

代码语言:javascript
复制
    <Style TargetType="{x:Type ListBoxItem}">
        <Style.Triggers>
            <EventTrigger RoutedEvent="PreviewMouseDown">
                <EventTrigger.Actions>
                    <action:WorksheetListBoxAction />
                </EventTrigger.Actions>
            </EventTrigger>
        </Style.Triggers>
    </Style>
票数 1
EN

Stack Overflow用户

发布于 2013-10-21 07:31:10

您可以在PreviewMouseDown事件上执行ListBoxItem事件

代码语言:javascript
复制
<ListBox ItemsSource="{StaticResource Data}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Button Name="TaskButton" Content="{Binding}" />
                </DataTemplate>
            </ListBox.ItemTemplate>
            <ListBox.ItemContainerStyle>
                <Style TargetType="{x:Type ListBoxItem}">
                    <EventSetter Event="PreviewMouseDown"
                                 Handler="ItemOnPreviewMouseDown" />
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>

        private void ItemOnPreviewMouseDown(
            object sender, MouseButtonEventArgs e)
        {

            ((ListBoxItem) sender).IsSelected = true;

        }
票数 4
EN

Stack Overflow用户

发布于 2013-10-21 07:28:17

代码语言:javascript
复制
  <ListBox.Triggers>
                    <EventTrigger RoutedEvent="PreviewMouseDown">
                        <action:WorksheetListBoxAction />
                    </EventTrigger>
                </ListBox.Triggers>

在不使用Interactivity.dll进行事件处理的情况下,您也可以这样做。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19488177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档