2009-06-16 10 views
0

これは私の最初の質問です。 私はWPFを使い始めていますが、私は立ち往生しています。ここで問題がある: 私は次のようにリストビューを持っている:WPFリストビューの質問

<UserControl.Resources> 
    <DataTemplate x:Key="FirstCell"> 
     <StackPanel Orientation="Horizontal"> 
      <CheckBox Margin="2"></CheckBox> 
     </StackPanel> 
    </DataTemplate> 
</UserControl.Resources> 

<ListView Name="lvRights"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="100" Header="Select" CellTemplate="{StaticResource FirstCell}"/> 
      <GridViewColumn Width="200" Header="Right" DisplayMemberBinding="{Binding Path=Name}" /> 
     </GridView>  
    </ListView.View> 
</ListView> 

私はのみ IDと名前を持つ「役割」、のコレクションにリストを結合しています。 私はそのDataTemplateを使用して、最初の列にチェックボックスを表示しています。ここ

そして

は質問です:

どのように私は、ユーザーがチェックボックスのいずれかのチェックをするかどうかを実行時に知ることができますか?リストビューの.Itemsプロパティにはロールがありますが、最初のカラムに関する情報は取得できません。

私はこれがSOOシンプルだと感じていますが、どういうわけか私は答えを見逃しています。

10xです。

+0

これは設計上の問題であると私は思っています。くそー。まだ質問が残っています。私はwpfでnoobフェーズを乗り越えるのを待つことができません... – Teodor

答えて

1

1)テンプレート内のチェックボックスにクリックハンドラを追加します。後ろのコードでは、チェックボックスのDataContextをRoleにキャストして、それがどれかを特定することができます。

2)Roleクラスに何らかの種類のブール値プロパティを追加できます。チェックボックスのIsCheckedプロパティをこのブール値プロパティにバインドできます。ブール値とチェックされたプロパティの間の変換にbinding converterが必要な場合があります。

+0

答えていただきありがとうございます、私はちょうどあなたの最初のソリューションを試して、それは動作します! – Teodor