在 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);