2016-10-11 5 views
0

を更新していない私は、ItemTemplateに内部のRadioButtonとリストビューを持っている:ListViewコントロールのSelectedItemは

<ListView ItemsSource="{Binding }"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <RadioButton IsChecked="{Binding Choice1}" /> 
       <RadioButton IsChecked="{Binding Choice2}" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

「バックグラウンド」で現在の項目を選択することが可能です。しかし、RadioButtonをクリックすると、SelectedItemは設定されません。

enter image description here

望ましい行動: "ChildItemコマンドレット" をクリックするたびのListViewItemが選択されています。フラグを設定すると、Outlookと同様に、現在のメールが選択されます。

enter image description here

は私が何とかクリックイベントバブルアップする必要がありますか?

答えて

1

この現象は、IsKeyboardFocusWithin-のプロパティがfalseの場合に発生します。 RadioButtonをクリックしている間、RadioButtonにはキーボードフォーカスがあります。

ソリューション

この

<Style TargetType="ListViewItem"> 
     <Style.Triggers> 
       <Trigger Property="IsKeyboardFocusWithin" Value="true"> 
         <Setter Property="IsSelected" Value="true" /> 
       </Trigger> 
     </Style.Triggers> 
</Style> 

のような単純なトリガーの完全なサンプル

<ListView ItemsSource="{Binding }"> 
      <ListView.Resources> 
       <Style TargetType="ListViewItem"> 
        <Style.Triggers> 
         <Trigger Property="IsKeyboardFocusWithin" Value="true"> 
          <Setter Property="IsSelected" Value="true" /> 
         </Trigger> 
        </Style.Triggers> 
       </Style> 
      </ListView.Resources> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal"> 
         <RadioButton IsChecked="{Binding Choice1}" /> 
         <RadioButton IsChecked="{Binding Choice2}" /> 
        </StackPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

を追加します。

は、あなたが右のTargetType(ListViewItemListBoxItemまたはTreeViewItem)これは

+0

感謝を助け

希望を選択してください。これは私のためのトリックでした – Mat

関連する問題