WPF - 从ListBox获取组合框检查属性

时间:2010-05-20 14:27:40

标签: wpf data-binding listbox checkbox

我有一个列表框,其定义如下:

<ListBox ItemsSource="{Binding Source={x:Static local:ResourceCollection.resourceList}}" Height="143" HorizontalAlignment="Left" Margin="6,6,0,0" Name="assignmentLB" VerticalAlignment="Top" Width="287" FontSize="12" FontWeight="Normal" IsEnabled="True" Grid.Column="0">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox />
                <TextBlock Text="{Binding Content}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

如何循环浏览此列表框并仅检查已检查其复选框的项目的TextBlock.Text值?

另外......如何从文本块中水平分隔出复选框。现在他们彼此相邻,没有间距。

1 个答案:

答案 0 :(得分:2)

将一个布尔属性添加到要绑定的类(与Content属性相同的一个)并将CheckBox绑定到它,如下所示:

<CheckBox IsChecked="{Binding IsSelected}"/>

然后,您只需循环浏览resourceList并抓取所有IsSelected设置为true的项目,如下所示:

resourceList.Where(r => r.IsSelected);

对于水平间距,您只需向CheckBoxTextBlock或两者提供Margin即可。 <{1}}上的保证金应为5 {0}。