我有一个带有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,这是一种不受欢迎的行为。
可能有多种方法可以改变这种行为。
我不需要它在列表中上下滚动,因为我只会显示适合屏幕的项目。所以也许这种行为可以被禁用。
滚动列表框时可能会产生回调,拖动完成时可能会禁用选择。
列表框的DataContext属于List&lt;&gt;那么有没有办法在我的List&lt;&gt;中更改我的Selected变量的setter这样就可以取消该列表中的其他值。
答案 0 :(得分:1)
在ScrollViewer.VerticalScrollBarVisibility
元素上将ListBox
设置为“已停用”。
在SelectionChanged
事件中,将SelectedIndex
设为-1
您可以清除ItemsSource
事件SelectionChanged
中的所有其他值。