2013-03-31 3 views
2

Я пытаюсь сделать привязку XAML для Windows Phone (таргетинг на WP7.1), и у меня есть набор флажков, которые я хочу отобразить. Я хочу поместить их в WrapPanelПривязка к коллекции флажков

Какие элементы управления я использовал бы для привязки к коллекции флажков? Я не вижу ItemSource для WrapPanel. Поэтому я не уверен, что буду использовать.

<ListBox Height="auto" Name="lbAssignments" BorderThickness="1" BorderBrush="Black" ItemsSource="{Binding DataList}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Vertical"> 
        <TextBlock x:Name="TextBlock" Text="{Binding Title}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,0,10" FontSize="26.667" TextWrapping="Wrap"/> 
        <TextBlock x:Name="TextBlock1" Text="{Binding Title}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,0,10" FontSize="26.667" TextWrapping="Wrap"/> 
        <toolkit:WrapPanel Height="400" Width="400"> 
         <!--collection of checkboxes--> 
        </toolkit:WrapPanel> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
+0

Является ли ваш DataList совокупностью логических значений или каждый элемент в DataList содержит коллекцию bools? – Phil

+0

Как @Phil предложил, пожалуйста, покажите нам базовую модель, которую вы хотите отобразить. –

+0

Прямо сейчас я просто хочу что-то ОЧЕНЬ Простота работы. У меня есть простой список , в котором есть текст. Как я могу показать их с помощью флажков? – webdad3

ответ

3

Привязка к коллекции элементов управления пользовательского интерфейса - это не то, что вы хотели бы сделать. Вместо этого я бы рекомендовал привязать коллекцию. По многим причинам - производительность, распределение памяти и общее обслуживание/гибкость.

Поскольку вы упомянули, что у вас есть List<string>, вы можете просто привязать его к ListBox:

<ListBox ItemsSource="{Binding YourList}"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <CheckBox Content="{Binding}"></CheckBox> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Однако, вы можете продолжить выжидать элемент в коллекции других элементов, при условии, что соответствующая поддержка существует. Вы можете использовать ItemsControl:

<ItemsControl ItemsSource="{Binding ElementName=myPage, Path=SomeCollection}"> 

</ItemsControl> 

Здесь SomeCollection может также быть ObservableCollection<CheckBox>.

+0

Спасибо! Я собираюсь попробовать это в эти выходные! Я ценю ввод и пример кода. – webdad3

Смежные вопросы