2011-04-20 14 views
0

私は、コードを返すのを防ぐためにスタイルを使用しようとしています。それらをリソースディレクティブに配置します。ListView内のCellTemplateのCheckBox状態

私の質問は、ListViewにDataTemplateを持つ列が1つあり、そのDataTemplateにCheckBoxのみを持つCellTemplateがある場合、DataTempleteが入っているときにCheckBox状態をバインドできるかどうかですResourceDictionary?

何私が持っていることは、これは私のXAMLである:

<ListView Name="listView"> 
    <ListView.View> 
     <GridView AllowsColumnReorder="False"> 
      <GridViewColumn DisplayMemberPath="{Binding [1]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [2]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [4]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [5]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [6]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [7]}"/> 
      <GridViewColumn> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <CheckBox IsThreeState="False" IsChecked="{Binding [8]}" Unchecked="CheckBox_Changed" Checked="CheckBox_Changed"/> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

と私はリソースディクショナリでこのような何かしようとしています:

<DataTemplate x:Key="ListViewCheckboxCell"> 
    <StackPanel> 
     <CheckBox IsThreeState="False" IsChecked="Make reference"/> 
    </StackPanel> 
</DataTemplate> 

そして、その列の値が常にありますブール

ありがとうございます!

答えて

1

あなたのしたことは正しいようです。バインディングが動的に解決され、XAMLが読み込まれますので、とき:あなたは今、あなたのリソースディクショナリにオリジナルよりも正確に同じテンプレートを残すことができるテンプレートが考慮されます

<GridViewColumn CellTemplate="{StaticResource ListViewCheckboxCell}" /> 

を記述する必要がありますあなたが指定したものに続いて、自動的に関連オブジェクトにバインディングが設定されます。

+0

AutoGenerateColumnsオプションは有効になっていません。ソースからの列をListViewの列にバインドします。そして、私はこの Miguel

+0

ListViewのXAMLコード全体を投稿してください。私はあなたの問題についての考えを持っていると思う、私は数日前にほぼ同じ問題にぶつかった。可能であれば、元の投稿を編集して、ListViewのコード全体と、リストがバインドされている元のコレクション(ItemsSource)を追加してください。 – Damascus

+0

私は自分のListviewコードを追加しました。 ItemsSourceは、データベースから取得するテーブルです。しかし、私が縛るテーブルの列は常に同じではありません。他のウィンドウでこのチェックボックステンプレートを使用し、バインドする列には異なるインデックスがあります。 – Miguel

関連する問題