Список привязок Коллекция из списка списков в Window Phone 7 - PullRequest
0 голосов
/ 20 мая 2011

Как связать коллекцию списков из коллекции списков в Window Phone 7, пока я могу связать из одной коллекции списков

Ответы [ 4 ]

1 голос
/ 21 ноября 2013

Прежде всего, есть шаблон элемента в вашем 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>

В моем файле кода я определю привязку какthis:

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 голос
/ 27 ноября 2013

Вы можете использовать код ниже,

<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 голосов
/ 28 октября 2014

Допустим, у нас есть ListBox lstbx, а коллекция, скажем,

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

мы можем добавить элементы в коллекцию с помощью Add() Ex-

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

тогда мы можем назначить присвоение коллекции непосредственно элементу списка 'Source ex.

lstbx.ItemSource=listdata;

// убедитесь, что вы храните более одной переменной в одном элементеколлекция, вы должны создать пользовательский шаблон данных для ListBox Шаблон элемента.!

0 голосов
/ 20 мая 2011

Я так понимаю, вы имеете в виду, что у вас есть коллекция коллекций?В этом случае вы можете вкладывать элементы ItemsControls (или ListBox):

<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>
...