ListBox在拖动时选择多个项目

时间:2011-08-04 15:48:39

标签: silverlight windows-phone-7 listbox radio-button

我有一个带有RadioButton的ListBox,其中包含相同的GroupName。

像这样:

<ListBox x:Name="AnswerListBox" DataContext="{Binding .}" ItemsSource="{Binding Answers}" Width="auto" HorizontalAlignment="Center" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <local:spriteToggleButton DataContext="{Binding .}" HorizontalAlignment="Center" Text="{Binding text}" Selected="{Binding selected}" Sprites="{Binding Path=DataContext.UISprites, ElementName=questionField}" IsChecked="{Binding selected, Mode=TwoWay}" GroupName="{Binding Path=DataContext.QuestionTitle, ElementName=questionField}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

当我点击RadioButton时,它将取消选择该组中的另一个,这很好。

但是当我在ListBox上向下滑动时,它会选择多个RadioButton,这是一种不受欢迎的行为。

可能有多种方法可以改变这种行为。

  1. 我不需要它在列表中上下滚动,因为我只会显示适合屏幕的项目。所以也许这种行为可以被禁用。

  2. 滚动列表框时可能会产生回调,拖动完成时可能会禁用选择。

  3. 列表框的DataContext属于List&lt;&gt;那么有没有办法在我的List&lt;&gt;中更改我的Selected变量的setter这样就可以取消该列表中的其他值。

1 个答案:

答案 0 :(得分:1)

  1. ScrollViewer.VerticalScrollBarVisibility元素上将ListBox设置为“已停用”。

  2. SelectionChanged事件中,将SelectedIndex设为-1

  3. 您可以清除ItemsSource事件SelectionChanged中的所有其他值。