我有一个列表框,其定义如下:
<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值?
另外......如何从文本块中水平分隔出复选框。现在他们彼此相邻,没有间距。
答案 0 :(得分:2)
将一个布尔属性添加到要绑定的类(与Content
属性相同的一个)并将CheckBox
绑定到它,如下所示:
<CheckBox IsChecked="{Binding IsSelected}"/>
然后,您只需循环浏览resourceList
并抓取所有IsSelected
设置为true的项目,如下所示:
resourceList.Where(r => r.IsSelected);
对于水平间距,您只需向CheckBox
或TextBlock
或两者提供Margin
即可。 <{1}}上的保证金应为5 {0}。