我需要为我的用户提供在UWP应用中显示垂直项目列表的功能。用户应该能够点击项目来执行某些操作并通过拖动重新排序,但无法选择它们。 UWP ListView是一个很好的候选人。我将使用此控件与以下设置来实现我需要的(简化形式):
<ListView CanReorderItems="True" AllowDrop="True" SelectionMode="None">
<ListViewItem>Blue</ListViewItem>
<ListViewItem>Red</ListViewItem>
<ListViewItem>Yellow</ListViewItem>
<ListViewItem>Green</ListViewItem>
</ListView>
当然,在真实的应用程序中,我通过ItemsSource
属性使用数据绑定,我的自定义项模板如下所示:
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle Height="50" Width="50" Fill="RosyBrown" />
<TextBlock Grid.Column="1" Text="Some text" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
不幸的是,我找不到一个好的,简单的方法来做我需要的事情。我的主要问题是ListView中的选择。例如,即使我将ListView的SelectionMode
设置为None
,当用户将鼠标指针移到它们上时,项目仍然会突出显示。 IsHitTestVisible
属性也没有帮助,因为如果我们将项目设置为False,则无法点击和拖动项目。
有没有办法解决我的问题?