2011-05-20 69 views
0

如何从窗口Phone 7的名单收集绑定列表收藏,而我能够从一个单一的列表集合捆绑绑定列表收集7

+0

你能澄清你到底想要达到什么目的吗? – 2011-05-20 16:12:29

+0

尝试以清晰的方式解释问题。 – 2014-02-03 06:19:40

回答

0

我想你的意思是你有一个收藏品?在这种情况下,你可以嵌套的ItemsControls(或列表框):

所有的
<ItemsControl ItemsSource={Binding Path=???}> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <!-- here is your nested itemscontrol --> 
     <ItemsControl ItemsSource={Binding Path=???}> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
      <!-- your content goes here --> 
      </DataTemplate> 
     <ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
1

首先在XAML中的项目模板。 添加绑定到它。 在代码中定义绑定属性。 将值分配给定义的属性。

我有这样的在我的XAML中的项目模板:

 <Grid.RowDefinitions> 
      <RowDefinition Height="367*" /> 
     </Grid.RowDefinitions> 
     <ListBox HorizontalAlignment="Stretch" Name="lstbNewOrders" Grid.Row="1" HorizontalContentAlignment="Stretch"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid x:Name="itemTemplate" Background="Transparent" HorizontalAlignment="Stretch"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="250"/> 
          <ColumnDefinition Width="Auto" /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="40"/> 
          <RowDefinition Height="40"/> 
          <RowDefinition Height="40"/> 
          <RowDefinition Height="20"/> 
         </Grid.RowDefinitions> 
         <TextBlock FontSize="30" Name="txtEbeln" Text="{Binding ebeln}" Grid.Row="0" Grid.Column="0" FontWeight="Bold" /> 

         <TextBlock FontSize="25" Name="txtCName" Text="{Binding cname}" Grid.Row="1" Grid.Column="0" /> 
         <TextBlock FontSize="25" Name="txtDate" Text="{Binding date}" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" TextAlignment="Right"/> 
         <StackPanel Height="30" Name="stkPanel01" HorizontalAlignment="Right" Grid.Row="0" Grid.Column="1"> 
          <TextBlock FontSize="25" Name="txtNetw" Text="{Binding netw}" HorizontalAlignment="Right" TextAlignment="Right"/> 
         </StackPanel> 
         <TextBlock FontSize="25" Name="txtVName" Text="{Binding vname}" Grid.Row="2" Grid.Column="0" /> 

        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

    </Grid> 

在我的代码文件,我将这样定义绑定:

public class itemListForListBox 
     { 
      public string ebeln { get; set; } 
      public string cname { get; set; } 
      public string vname { get; set; } 
      public string netw { get; set; } 
      public string date { get; set; } 

     } 

并提供样值这个:

void fillList() 
     { 
      List<itemListForListBox> itemListbox = new List<itemListForListBox>(); 
      itemListForListBox listItem; 
      for (int i = 0; i < 5;i++) 
      { 
       listItem = new itemListForListBox(); 

       listItem.ebeln = "Name "+i; 
       listItem.date = "Date "+i; 
       listItem.vname = "VName "+i; 
       listItem.netw = "Amount "+ i; 
       listItem.cname = "CName "+i; 

       itemListbox.Add(listItem); 
      } 

      lstbNewOrders.ItemsSource = itemListbox; 

     } 

希望这可以帮助你。 谢谢。

1

您可以使用下面的代码,

<ListBox Name="RouteListBox" ItemContainerStyle="{StaticResource RouteListBoxItemStyle}" SelectedItem="{Binding Model.SelectedRoute,Mode=TwoWay}" ItemsSource="{Binding RouteListCollection}"> 
<i:Interaction.Triggers> 
    <i:EventTrigger EventName="Tap"> 
    <command:EventToCommand Command="{Binding RouteItemSelectedCommand}"/> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <Grid > 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

     <TextBlock Text="{Binding RouteName}" Style="{StaticResource RoutesStyle}" Grid.Column="1" /> 
     <Border Style="{StaticResource RouteCountBorder}" Visibility="Collapsed" Grid.Column="2"> 
      <TextBlock Style="{StaticResource RoutesCount}" Visibility="Collapsed" Text="{Binding ShopCount,Mode=TwoWay}"></TextBlock> 
     </Border> 

     </Grid> 
    </DataTemplate> 
    </ListBox.ItemTemplate></ListBox> 
0

让我们说我们有一个列表框lstbx和收集可以说

List <String> listdata = new List<String>(); 

我们可以通过Add() EX-项目添加到集合

listdata.Add("Nazi 1"); 
    or 
    forloop(expression) 
    { 
    listdata.Add("vale") 
    } 

然后我们可以分配直接分配到列表框项目源 前。

lstbx.ItemSource=listdata; 

//确保如果妳在集合的单个项目存储多个变量,你应该创建为列表框项模板的自定义数据模板。 !