2011-08-11 4 views
3

リストボックスにチェックボックスを使用してデータ(Employee)をロードする必要があります。だからこの瞬間に私は従業員の "名前"をロードでき、 "LastName"、 "Age" ...などの他のデータをロードする必要があるので、他の値をロードする方法は問題です。ListBoxのデータをチェックボックスでロードする

私はどのようにコンテンツの構文をすべきか分からない。

これは基本的に、あなたが別のコントロールを表示することができますチェックボックスと一緒になるのListItemテンプレートのレイアウトを強化する必要がXAML

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <CheckBox Name="CheckBoxZone" Content="{Binding Name}" Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked" 
        Margin="0,5,0,0"/> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

答えて

2

です:

<DataTemplate> 
    <Grid> 
     <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 

     <CheckBox Grid.Column="0" Name="CheckBoxZone" Content="{Binding Name}" Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked" Margin="0,5,0,0"/>  

     <TextBlock Grid.Column="1" Text="{Binding LastName}"></TextBlock> 
    </Grid> 
</DataTemplate> 

あなたがアイテム自体を渡したい場合はCheckBoxの内容(必要な理由は?)は、次のように単純に使用します:

<CheckBox Grid.Column="0" Name="CheckBoxZone" Content="{Binding}" Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked" Margin="0,5,0,0"/>  
+0

ありがとう、ちょうど1つの質問、どのように値の間にスペースを得ることができます: "Maikol Smith 36" ... – ale

0

ほとんどの柔軟性はCheckBoxにはDataTemplateを使用してください。マイコルスミス(36)

Runタグ:

<CheckBox Content="{Binding }"> 
    <CheckBox.ContentTemplate> 
     <DataTemplate> 
      <TextBlock> 
       <Run Text="{Binding Name}"/> 
       <Run Text="{Binding Family}" FontWeight="Bold"/> 
       <Run Text="{Binding Age, StringFormat='({0:d})'}" FontStyle="Italic"/> 
      </TextBlock> 
     </DataTemplate> 
    </CheckBox.ContentTemplate> 
</CheckBox> 

これは、このようなものになります

[年齢と仮定すると、それはdoubleだ場合{0:f}を使用し、タイプintです] TextBlockの間にスペースを挿入するための新しい行にある必要があります。

関連する問題