C# 如何在代码中指定ListView ScrollViewer而不显示ListView
在XAML中,我可以这样做: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,这正是我所需
<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);