如何在代码中指定列表视图滚动查看器而不显示列表视图



在 XAML 中,我可以这样做:

<ListView x:Name="listView" 
ItemsSource="{Binding ElementName=MainWindowName, Path=List}" 
ScrollViewer.VerticalScrollBarVisibility="Hidden"
/>

这将显示一个没有滚动条的列表视图,这是我所需要的。但是,就我而言,我需要动态添加 ListViews (1-10( 作为弹出窗口中的内容。但是我发现在代码中获取 ScrollViewer 的唯一方法是遍历可视化树,如此处的示例所示。

在代码中,我尝试了以下代码:

var listView = new ListView();            
listView.ItemsSource = list;
popup.Child = listView;
var scroller = listView.GetVisualChild<ScrollViewer>();

此处滚动条为空。但是如果我在获取滚动条之前添加popup.IsOpen = true;,它可以工作。我想这并不奇怪,因为列表视图尚未添加到任何树中?当然,在用户调用弹出窗口之前显示弹出窗口不是一种选择。

您能否建议一种在代码中使其工作的方法 - 或者如果有一种方法可以在 XAML 中动态列出视图。

您可以像这样以编程方式设置附加属性:

ScrollViewer.SetVerticalScrollBarVisibility(listView, ScrollBarVisibility.Hidden);

最新更新