2016-05-30 4 views
0

У меня есть ListBox и DataTemplate определен как так:Как я могу доступ к элементам управления в элементе управления ListBox, порожденного ItemTemplate

<Window.Resources> 
    <DataTemplate x:Key="propertyTemplate"> 
     <StackPanel Margin="8" Orientation="Horizontal"> 
      <CheckBox Name="Chosen"/> 
      <TextBlock Text="{Binding Path=MAP}" Margin="10,0,0,0"/> 
     </StackPanel> 
    </DataTemplate> 
    </Window.Resources> 
     <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="100"  Margin="388,203,0,0" VerticalAlignment="Top" Width="522" 
      ItemsSource="{Binding}" 
      ItemTemplate="{StaticResource propertyTemplate}"/> 

Я заполнить ListBox с помощью Linq запрос:

Dim propertyList = (from a In db.properties 
       select a).ToList() 
listbox.datacontext = propertyList 

Я хочу проверить и установить значение флажка «Выбран» для каждого элемента в списке. Есть ли способ сделать это?

ответ

1

Не делайте этого, привяжите IsChecked к свойству класса товаров, а затем перейдите по списку источников.

+0

LinqtoSQL создает класс item, поэтому я предполагаю, что мне нужно будет создать еще один класс для этого списка, который наследуется от класса LinqToSql, и добавить к нему булевское поле. Должен ли я создать индивидуальный конструктор элемента по элементу, чтобы преобразовать его в новый тип, или есть лучший способ сделать это? (Или я просто в неправильном направлении здесь) – Rolan

+0

Возможно, вы захотите обернуть свою модель (класс базы данных) в классе модели представления, у которого есть это дополнительное свойство. –

+0

(Класс view-model имеет свойство, содержащее модель, если это было непонятно.) –