C# 如何在代码中指定ListView ScrollViewer而不显示ListView

C# 如何在代码中指定ListView ScrollViewer而不显示ListView,c#,wpf,listview,scrollviewer,C#,Wpf,Listview,Scrollviewer,在XAML中,我可以这样做: <ListView x:Name="listView" ItemsSource="{Binding ElementName=MainWindowName, Path=List}" ScrollViewer.VerticalScrollBarVisibility="Hidden" /> 这将显示一个没有滚动条的ListView,这正是我所需

在XAML中,我可以这样做:

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

这将显示一个没有滚动条的ListView,这正是我所需要的。然而,在我的例子中,我需要在弹出窗口中动态添加ListView(1-10)作为内容。但是,我发现在代码中获得ScrollViewer的唯一方法是遍历可视化树,如示例中所示

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

var listView = new ListView();            
        listView.ItemsSource = list;
        popup.Child = listView;
        var scroller = listView.GetVisualChild<ScrollViewer>();
var listView=new listView();
listView.ItemsSource=列表;
popup.Child=listView;
var scroller=listView.GetVisualChild();
这里的滚动条是空的。但是如果我添加
popup.IsOpen=true在获取滚动条之前,它可以工作。我想这并不奇怪,因为ListView没有被添加到任何树中?当然,在用户调用之前显示弹出窗口不是一个选项


您可以建议一种在代码中实现此功能的方法吗?或者,如果有一种在XAML中动态显示ListView的方法,您可以这样通过编程设置附加属性:

ScrollViewer.SetVerticalScrollBarVisibility(listView, ScrollBarVisibility.Hidden);