我有一个启用单选的列表视图,但我只希望通过代码而不是通过用户交互来完成选择。原因是我使用 Vistual State Manager Selection 状态组作为处理渲染和动画“活动”状态转换的简单方法。除了我不希望用户能够设置“活动”项目之外,这一切都非常适合每个项目之间的良好过渡。
我已经尝试了一些明显的事情,比如覆盖 OnTapped Routed 事件并将 Handled 状态设置为 true,但该项目仍然被选中。
我有一个启用单选的列表视图,但我只希望通过代码而不是通过用户交互来完成选择。原因是我使用 Vistual State Manager Selection 状态组作为处理渲染和动画“活动”状态转换的简单方法。除了我不希望用户能够设置“活动”项目之外,这一切都非常适合每个项目之间的良好过渡。
我已经尝试了一些明显的事情,比如覆盖 OnTapped Routed 事件并将 Handled 状态设置为 true,但该项目仍然被选中。
如果您希望您的用户仍然能够滚动但不能选择,一个不错的选择是将 ScrollView 与IsHitTestVisible
设置为 False 的 ListView 结合起来:
<ScrollViewer Width="100" Height="100"
HorizontalAlignment="Left" VerticalAlignment="Top"
VerticalScrollBarVisibility="Auto">
<ListView Name="Foo" BorderThickness="0" IsHitTestVisible="False">
<System:String>Item 1</System:String>
<System:String>Item 2</System:String>
<System:String>Item 3</System:String>
etc...
</ListView>
</ScrollViewer>
请注意,如果用户在 ListView 上获得焦点,他们将能够使用键盘更改 ListView 的选择,因此请确保不会发生这种情况。