Загрузить данные в ListBox с флажком - PullRequest
3 голосов
/ 11 августа 2011

Мне нужно загрузить некоторые данные (сотрудник) в поле со списком с флажком.Таким образом, проблема заключается в том, как я могу загрузить другие значения, потому что в данный момент только я могу загрузить «Имя» сотрудника, и мне нужно загрузить другие данные, такие как «LastName», «Age», ... и т.д.1002 * Я не знаю, каким должен быть синтаксис в Контенте.

Это 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 ]

2 голосов
/ 11 августа 2011

По сути, вам нужно улучшить макет шаблона ListItem, чтобы вместе с CheckBox вы могли отображать другие элементы управления:

<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 голосов
/ 12 августа 2011

Для большей гибкости используйте DataTemplate для CheckBox.

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

[Предполагая, что возраст имеет тип int, используйте {0:f}, если это double]

Это приведет к чему-то вроде этого: Maikol Smith (36)

Каждый тег Run должен находиться в новой строке для TextBlock вставить пробел между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...