如何将数组绑定到数据模板 - 列表框

时间:2011-09-06 08:46:46

标签: c# binding linq-to-xml

我目前正在解析HTML以生成下面列表框中显示的数组

enter image description here

我将数组中的每个对象输出到文本框中,如此

//first line
flight1.Text = node[0][2];
origin1.Text = node[0][3];
status1.Text = node[0][7];
time1.Text = node[0][6];

//second line

textBlock1.Text = node[1][3];
textBlock2.Text = node[1][3];
textBlock4.Text = node[1][7];
textBlock3.Text = node[1][6];

这是结果

enter image description here

你可以想象这是相当艰苦的工作,可能不是最好的方法。

无论如何都要绑定阵列上的每个部分,例如......所有航班名称都放在数据模板中的列表框中,这样它就会自动列出所有航班时间和所有航班时间等。

XAML

这样的东西
<ListBox Margin="6,6,-12,0" Name="listBox1">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Margin="0,0,0,17" Width="432" Height="Auto">

                            <TextBlock Text="{Binding FlightNumber}" Foreground="#FF4BCCF5" FontSize="24" />
                            <TextBlock Text="{Binding Origin}" TextWrapping="Wrap" FontSize="22" Foreground="#FF969696" />
                            <TextBlock Text="{Binding Time}" TextWrapping="Wrap" FontSize="20" Foreground="#FF05C16C" />
                            <TextBlock Text="{Binding Status}" TextWrapping="Wrap" FontSize="20" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

1 个答案:

答案 0 :(得分:0)

我不确定你想要达到什么目标。但总的来说,我建议您执行以下步骤:

  1. 解析HTML
  2. 将每一行放入FlightInformation - 类(包含您在XAML示例中的属性)
  3. 将所有FlightInformation - 对象放入ObservableCollection
  4. DataTemplate应用于ItemsControl