【问题标题】:Load data in ListBox with check box使用复选框在 ListBox 中加载数据
【发布时间】:2011-08-11 14:53:35
【问题描述】:

我需要在带有复选框的列表框中加载一些数据(员工)。所以问题是如何加载其他值,因为此时只有我可以加载员工的“姓名”,我需要加载其他数据,如“姓氏”、“年龄”等

我不知道内容中的语法应该如何。

这是xaml

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

【问题讨论】:

    标签: c# .net wpf xaml listbox


    【解决方案1】:

    基本上,您必须增强 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"/>    
    

    【讨论】:

    • 谢谢,只有一个问题,如何在值之间获得空格,例如:“Maikol Smith 36”...
    【解决方案2】:

    为了获得最大的灵活性,请将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>
    

    [假设 Age 的类型为 int,如果是 double,则使用 {0:f}]

    这将导致如下所示: Maikol Smith (36)

    每个Run 标记应位于一个新行上,以便TextBlock 在它们之间插入一个空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多