185列と15行を表示するリストビューがあります。15 行で 185 列を表示するには、Windows ストア アプリに時間がかかるか、UI がフリーズします。以下は、データを表示するために使用するコードです
<ListView x:Name="outerlstView"
Height="650"
Margin="2,24,10,10" Grid.Row="1"
Grid.Column="1" BorderThickness="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
ItemsSource="{Binding Data,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionMode="None" ShowsScrollingPlaceholders="True" IsZoomedInView="False" IsSwipeEnabled="False" IsItemClickEnabled="False" ItemContainerStyle="{StaticResource LvItemStyle}" Orientation="Vertical" VirtualizingStackPanel.VirtualizationMode="Standard"/> ShowsScrollingPlaceholders=" True"> Height="{Binding Path=Tag,RelativeSource={RelativeSource Mode=Self},Converter={StaticResource RowtoHeightConverter }}" >
上記のコードには、別のリストビュー内にリストビューがあります。list> を listview に読み込もうとすると、時間がかかりすぎます。185 列で 100 行をロードすると、アプリがクラッシュすることがあります。
Itemtemplate スタイル コントロールを Itemstackpanel に置き換えてみました。パフォーマンスは良好です。データが読み込まれ、画面に表示されるのが速くなりますが、水平スクロールが表示されません
前のコード
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel
Orientation="Vertical" VirtualizingStackPanel.VirtualizationMode="Standard"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
に変更するとき<ListView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Margin="0,0,0,0" Width="Auto" Orientation="Horizontal" Height="35" VirtualizingStackPanel.VirtualizationMode="Standard"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
水平スクロールバーが有効になっていません。WindowsストアアプリのItemstackpanelにデフォルトで有効になっている水平スクロールバーを有効にする方法を教えてください。このコントロールのバグであるか、水平スクロールバーを使用してItemsStackpanelに回避策があるようです。