WPF - Получить проверенное свойство combobox из ListBox - PullRequest
1 голос
/ 20 мая 2010

У меня есть список, который определен так:

<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 Ответ

2 голосов
/ 20 мая 2010

Добавьте логическое свойство к классу, к которому вы привязываетесь (то же самое со свойством Content) и привяжите к нему CheckBox, например:

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

Затем вы можете просто перебрать resourceList и захватить все элементы, для которых IsSelected установлено в true, например:

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

Что касается горизонтального интервала, вам просто нужно указать Margin для CheckBox, TextBlock или для обоих. Поля 5,0 на TextBlock должны быть все, что вам нужно.

...