首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF ListView SelectionChanged not样式不工作。EventSetter也是

WPF ListView SelectionChanged not样式不工作。EventSetter也是
EN

Stack Overflow用户
提问于 2010-06-29 10:23:33
回答 2查看 4.1K关注 0票数 2
代码语言:javascript
复制
<Style x:Key="OrderGroupTemplateStyle" TargetType="{x:Type ContentControl}">
<Style.Triggers>
   <DataTrigger Binding="{Binding Path=Name.ShowDetailedInfo, UpdateSourceTrigger=PropertyChanged}" Value="False">
      <Setter Property="ContentTemplate">
         <Setter.Value>
            <DataTemplate>
               <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="3" Margin="2">
                  <StackPanel Background="LightGoldenrodYellow">
                     <ContentControl Content="{Binding Path=.}" Style="{StaticResource MyRecordViewModelShortStyle}"/>
                    <ListView ItemsSource="{Binding Path=Items}" Margin="4">                                                                     
                    <ListView.ItemContainerStyle>
                       <Style TargetType="{x:Type ListViewItem}">
                          <Setter Property="HorizontalContentAlignment" Value="Stretch" />                            <Setter Property="Padding" Value="2"/>
                          <EventSetter Event="MouseDoubleClick" Handler="ItemsControl_SelectionChanged"/>
                                                        </Style>
                                                    </ListView.ItemContainerStyle>

当列表视图选择发生变化时,我想做一些工作。因为我使用的是样式,所以我不能在ListView上使用ListView事件。我尝试使用EventSetter,但是编译项目时有任何错误:

事件'MouseDoubleClick‘不能在样式的目标标记上指定。使用EventSetter代替。

有人能帮帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-29 12:15:35

尝试将样式创建为资源,而不是将其内联声明。我不知道为什么它的行为不同,但它似乎使错误消失了:

代码语言:javascript
复制
<Style TargetType="{x:Type ListViewItem}" x:Key="ItemContainerStyle">
    <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    <Setter Property="Padding" Value="2"/>
    <EventSetter Event="MouseDoubleClick" Handler="ItemsControl_SelectionChanged"/>
</Style>
<Style x:Key="OrderGroupTemplateStyle" TargetType="{x:Type ContentControl}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Name.ShowDetailedInfo, UpdateSourceTrigger=PropertyChanged}" Value="False">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Border BorderBrush="Gray" BorderThickness="2" CornerRadius="3" Margin="2">
                            <StackPanel Background="LightGoldenrodYellow">
                                <ContentControl Content="{Binding Path=.}" Style="{StaticResource MyRecordViewModelShortStyle}"/>
                                <ListView ItemsSource="{Binding Path=Items}" Margin="4" ItemContainerStyle="{StaticResource ItemContainerStyle}"/>
票数 6
EN

Stack Overflow用户

发布于 2010-06-29 10:35:44

我不明白‘因为我在使用样式,我不能在ListView上使用ListView事件’

但是,如果您也使用样式,则可以使用Listview的SelectionChanged事件。

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

https://stackoverflow.com/questions/3139765

复制
相关文章

相似问题

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