c# - 如何在代码中指定 ListView ScrollViewer 而不显示 ListView
问题描述
在 XAML 中,我可以这样做:
<ListView x:Name="listView"
ItemsSource="{Binding ElementName=MainWindowName, Path=List}"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
/>
这将显示一个没有滚动条的 ListView,这是我需要的。但是,就我而言,我需要动态添加 ListViews (1-10) 作为 PopUp 中的内容。但我发现在代码中获取 ScrollViewer 的唯一方法是像这里的示例中那样遍历可视化树。
在代码中,我尝试了以下代码:
var listView = new ListView();
listView.ItemsSource = list;
popup.Child = listView;
var scroller = listView.GetVisualChild<ScrollViewer>();
这里滚动条为空。但是,如果我popup.IsOpen = true;
在获取滚动条之前添加,它会起作用。我想这并不奇怪,因为 ListView 尚未添加到任何树中?当然,在用户调用它之前显示弹出窗口不是一种选择。
您能否建议一种在代码中使其工作的方法 - 或者是否有一种方法可以在 XAML 中动态地使用 ListView。
解决方案
您可以像这样以编程方式设置附加属性:
ScrollViewer.SetVerticalScrollBarVisibility(listView, ScrollBarVisibility.Hidden);
推荐阅读
- c++ - 为什么在定义一对数组时需要额外的一对花括号?
- linux - 如何在支持 GPU NVIDIA 的 Xvfb 中运行 chrome?
- android - cocos2dx-android plist 有时在 rapidxml_sax3.hpp 读取崩溃
- string - 来自链接/URL 的 Dart 子字符串
- reactjs - Highcharts:用于连接每个标记的线的自定义区域轮廓
- amazon-web-services - Amazon Cognito 不会向不同区域的电话号码发送 SMS
- python - 在 Python 中,如何在函数中定义任意数量的索引变量?
- java - 将以下代码段转换为 if-else 语句
- amazon-web-services - terraform 在状态文件中存储敏感数据
- axapta - 在表单之间传递日记帐行