c# - WPF 嵌套扩展器未正确调整父 ListBox 滚动条
问题描述
我正在为工作流程构建一个自动清单。该应用程序比较两个来源之间的数据并生成一系列通过失败结果,其中包括在测试中评估的数据。有些测试有子测试,也需要审查。ViewModel 的输入是测试结果列表。我选择 Expanders 是因为我可以隐藏数据,除非需要查看。下面是列表框的示例 DataTemplates,其中我有一个自定义数据模板选择器可以在模型之间进行选择
<Expander >
<Expander.Header>
<DockPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Image DockPanel.Dock="Left" Height="30" Width="30" Style="{DynamicResource ImageStyle}"/>
<TextBlock DockPanel.Dock="Left" Text="{Binding TestName}" VerticalAlignment="Center" Margin="10,0" Height="30" FontSize="12"/>
<Button DockPanel.Dock="Right" Content="Override" IsEnabled="False" Height="30" Width="150"/>
</DockPanel>
</Expander.Header>
<Expander.Content>
<Grid Margin="25,5" >
<DataGrid ItemsSource="{Binding TestData}" Height="50" FontSize="12" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Eclispe Data" Binding="{Binding EclipseData}"/>
<DataGridTextColumn Header="Mosaiq Data" Binding="{Binding MosaiqData}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Expander.Content>
</Expander>
</DataTemplate>
<DataTemplate x:Key="NestedResultTemplate" DataType="MQTransferValidation.Model.Result">
<Expander >
<Expander.Header>
<DockPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Image DockPanel.Dock="Left" Height="30" Width="30" Style="{DynamicResource ImageStyle}"/>
<TextBlock DockPanel.Dock="Left" Text="{Binding TestName}" VerticalAlignment="Center" Margin="10,0" Height="30" FontSize="12"/>
<Button DockPanel.Dock="Right" Content="Override" IsEnabled="False" Height="30" Width="150"/>
</DockPanel>
</Expander.Header>
<ListBox Margin="25,5" ItemsSource="{Binding SubTestResults}" ItemTemplateSelector="{StaticResource dataTemplateSelector}">
</ListBox>
</Expander>
</DataTemplate>
我遇到的问题是我的嵌套扩展器没有正确调整包含它们的 ListView 上的滚动条。我可以扩展一个或两个级别,但是所有的东西都属于我们的 listView,我不能再向下滚动了。
我是否缺少将 Expander 范围中的更改传递到渲染链的命令或选项?
解决方案
我ScrollViewer.VerticalScrollBarVisibility="Visible" Height="350"
为你的ListBox设置了,那么两个滚动条就可以正常工作了。
以下是更新后的代码(仅供测试)和结果图片:
<Grid>
<ListView Name="myListView">
<ListView.ItemTemplate>
<DataTemplate >
<Expander >
<Expander.Header>
<DockPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<Image DockPanel.Dock="Left" Height="30" Width="30"/>
<TextBlock DockPanel.Dock="Left" Text="{Binding TestName}" VerticalAlignment="Center" Margin="10,0" Height="30" FontSize="12"/>
<Button DockPanel.Dock="Right" Content="Override" IsEnabled="False" Height="30" Width="150"/>
</DockPanel>
</Expander.Header>
<ListBox Margin="25,5" ScrollViewer.VerticalScrollBarVisibility="Visible" Height="350">
<ListBoxItem Content="Start"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding EclipseData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="{Binding MosaiqData}"></ListBoxItem>
<ListBoxItem Content="End"></ListBoxItem>
</ListBox>
</Expander>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
推荐阅读
- c# - System.Xml.Serialization.IXmlSerializable'
- vhdl - 模拟 LVDS 软核 IP
- python - 如何更新混合了多个数据模型的 algolia 索引
- javascript - D3Plus 散点图 X axix 字符串
- excel - 如何基于另一个 Hlookup 进行 Hlookup?
- rest - websphere中的Spring Restful服务
- angular - 我应该如何将 Office js 函数中的值传递给角度语法函数
- css - 如何在移动设备上重新排序 div 类?
- powershell - PowerShell 错误:基础连接已关闭
- odoo - 拣货中的发票编号