【问题标题】:Issues with Windows Store ListView ControlWindows 应用商店 ListView 控件的问题
【发布时间】:2014-02-21 20:55:52
【问题描述】:

我需要一些有关 Windows 商店应用程序 8.1 中 Listview 的专家帮助。目前我在 Listview 中垂直显示 150 个项目,默认属性设置为启用,如

IsSwipeEnabled="True" IsTapEnabled="True" SelectionMode="Single" CanDragItems="True" CanReorderItems="True"

有了上面的设置,一切都很好, 当屏幕加载时,我看到默认选择列表视图中的第一项,如何删除默认选择。我设置了 seletedindex =-1 和 selecteditem=null,没有任何效果。

当我设置 SelectionMode = "none" IsTapEnabled= False 和 IsItemClickEnabled="True" 然后 我没有看到第一个项目被选中。但现在我触摸事件没有触发。

第二个问题是我的列表视图项目是可拖动的,每次当我选择/点击一个项目并拖动到网格的右侧时。我的整个 Listview 浮动或移动,我想让 Listview 固定在适当的位置,当我拖动单个 ListViewItem 时不应该拖动整个 listview。这给用户带来了烦恼。我希望修复列表视图,即它不应该在选择和拖动项目时移动。请给我一些建议。

    <SemanticZoom x:Name="semanticZoom" VerticalAlignment="Bottom" Grid.Row="4"   HorizontalAlignment="Left"    Style="{x:Null}"
              >
        <SemanticZoom.ZoomedOutView>
            <GridView  IsItemClickEnabled="False"  IsSwipeEnabled="False"     ScrollViewer.IsHorizontalScrollChainingEnabled="False"  Style="{x:Null}">
                 <GridView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <ItemsWrapGrid ItemWidth="75" Orientation="Horizontal" ItemHeight="75" MaximumRowsOrColumns="5"  Background="Transparent" />
                    </ItemsPanelTemplate>
                </GridView.ItemsPanel>
             </GridView>
        </SemanticZoom.ZoomedOutView>
        <SemanticZoom.ZoomedInView>
            <ListView x:Name="ItemsGridView" IsSwipeEnabled="True"  SelectionMode="Single" IsTapEnabled="True" VerticalAlignment="Stretch"  MaxHeight="725"
              ItemsSource="{Binding Source={StaticResource GrpColumns},Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
              Height="Auto"
              ScrollViewer.VerticalScrollBarVisibility="Auto"  AllowDrop="True"     Drop="ItemsGridView_Drop"
             Tag="{Binding Path=Columns,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
              ScrollViewer.VerticalScrollMode="Auto"   CanDragItems="True" CanReorderItems="True" IsItemClickEnabled="True"   >
                <interactivity:Interaction.Behaviors>
                    <behaviors:DragBehaviour/>
                </interactivity:Interaction.Behaviors>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid  Margin="10,2,0,2" HorizontalAlignment="Stretch"     >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="3*"></ColumnDefinition>
                                <ColumnDefinition Width="97*"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <TextBlock   Text="{StaticResource AsterikGlyph}"  
                                             Style="{StaticResource GlyphIconStyle}"   Margin="0,2,0,0"   
                                             FontFamily="{StaticResource SymbolThemeFontFamily}"
                                            HorizontalAlignment="Center" VerticalAlignment="Top" 
                                Visibility="{Binding Path=IsRequireField,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource TextBlockVisibityConverter}}" />

                            <TextBlock Text="{Binding SrcName}"  TextTrimming="WordEllipsis"  Margin="2,0,0,2" TextWrapping="NoWrap"
                                   Style="{StaticResource SemantizZoomOutViewTextBlock}"  Grid.Column="1"       ToolTipService.ToolTip="{Binding SrcName}"                                     
                                       VerticalAlignment="Center" HorizontalAlignment="Left">

                            </TextBlock>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ItemsPanelTemplate>
                    <ItemsStackPanel Orientation="Vertical" VirtualizingStackPanel.VirtualizationMode="Standard" />
                </ItemsPanelTemplate>          
                <ListView.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.HeaderTemplate>                               
                            <DataTemplate>
                                <Border Background="#333F50" Margin="4" BorderBrush="Transparent" BorderThickness="1" Width="60" Height="60">
                                    <Button x:Name="HeaderButton"  Background="Transparent" Width="60" Height="60"  Padding="1" HorizontalAlignment="Center" VerticalAlignment="Center" Click="HeaderButton_Click">
                                        <TextBlock Text="{Binding Key}" Margin="2"  Style="{StaticResource GroupHeaderTextStyle}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                                    </Button>   
                                </Border>
                            </DataTemplate>                               
                        </GroupStyle.HeaderTemplate>
                    </GroupStyle>
                </ListView.GroupStyle>
            </ListView>
        </SemanticZoom.ZoomedInView>
    </SemanticZoom>

【问题讨论】:

  • 请检查答案或向我们添加更多帮助

标签: .net windows windows-store-apps windows-8.1


【解决方案1】:

我认为您可以将 ListView 的选定项绑定到具有 getter 和 setter 的属性。在设置器中设置一个断点,您可以在调用堆栈中检查设置默认值的原因。原因据我所知,ListView 上没有默认选择。

关于第二个问题,我可以检查一下 ListView 和它的父母吗?在 Codepact 或类似的地方。

【讨论】:

  • 我没有绑定到 SelectedItem。正如你所说,没有默认选择是选择默认值的原因
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多