2011-08-04 10 views
2

ListBox内に同じGroupNameのRadioButtonを持つListBoxがあります。そのようListBoxはドラッグされているときに複数の項目を選択しています

:私はラジオボタンをクリックすると

<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> 

が、それはそのグループ内の別の選択を解除しますが、これは大丈夫です。

しかし、私がListBoxをスワイプすると、不要な動作である複数のRadioButtonが選択されます。

この動作を変更する方法は複数あります。

  1. 私はスクリーンに収まるように多くのアイテムを表示するので、リストを上下にスクロールする必要はありません。おそらくその動作を無効にすることができます。

  2. ListBoxがスクロールされ、ドラッグ中に選択が無効になる可能性があります。

  3. リストボックスへのDataContextはリスト<です>私のリスト<>で選択した変数のセッターを変更して、そのリスト内の他の値を設定解除する方法があります。

+0

DataContext = "{Binding。}"は完全に不要です。 DataContextは、デフォルトで、親要素またはテンプレートから継承します。 –

+0

ありがとう、私のコードクリーナーを削除する削除します。しかし私はまだ私が言及した問題があります。しかし、チップをありがとう。これは、DependencyPropertiesのいくつかで何も動作していないときのコードに残っています。 –

答えて

1
  1. 設定ScrollViewer.VerticalScrollBarVisibilityListBox要素の "無効" に。 SelectionChangedイベントで

  2. 、あなたがSelectionChangedイベントでItemsSourceに他のすべての値をクリアすることができ-1

  3. SelectedIndexを設定します。

+0

私は試してみる#1、#2確かではない、有効なクリックを無効にしないだけでなく、ドラッグをクリックします。 #3あなたは送信者を意味しますか.ItemsSource? –

+0

どのように設定するかによって異なりますが、ほとんどの場合はそうです。 –

+0

実際にはClickModeを「押す」ように変更するというソリューションがありましたが、それは今ドラッグして放すことで、もっと多くのアイテムをリリースするためです。 –

関連する問題