将嵌套列表框中的绑定绑定到多个类

时间:2012-12-05 16:42:34

标签: windows-phone-7 binding

我正在制作一个嵌套的列表框,主要是因为我需要在一个列表框中绑定多个类,我无法做到,因此嵌套列出的框。

以下是我在XAML页面中所做的事情:

<ListBox Name="abcd" Margin="10,0,30,0" ItemsSource="{Binding Title}"     SelectionChanged="ListBox_SelectionChanged" Height="486" Width="404" FontSize="20">
                <ListBox.ItemTemplate>
                    <DataTemplate >
                        <StackPanel Margin="0,0,10,0" Width="380" Height="140">
                            <Grid  >
                            <TextBlock Text="{Binding cdata}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}" />
                                <ListBox Name="ab" ItemsSource="{Binding Description}" FontSize="14">
                                    <ListBox.ItemTemplate>
                                        <DataTemplate>
                                            <StackPanel Width="380" Height="100">
                                                <Grid>
                                                   <TextBlock Text="{Binding cdata}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}" />
                                                </Grid>
                                            </StackPanel>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>
                            </Grid>
                        </StackPanel>                            
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

其中ListBox“abcd”必须与类标题绑定,“ab”绑定到类Description.Both类只有一个字符串字段“cdata”。

在xaml.cs中我做了:

abcd.ItemsSource=from article in root.openfooty.news.article
                          select new Classes.Title 
                             { 
                                  cdata = article.title.cdata
                             };

       ab.ItemSource = from article in root.openfooty.news.article
                            select new Classes.Description
                              { 
                                  cdata = article.description.cdata
                              };

与“abcd”的绑定工作正常但是“ab”表示“nam ab在当前上下文中不存在”

非常感谢任何帮助。谢谢:D

1 个答案:

答案 0 :(得分:0)

你为什么不写这样一个类

public class TitleDescription
{
    public string title { get; set; }
    public string description { get; set; }
}

并尝试数据绑定?

abcd.ItemsSource=from article in root.openfooty.news.article
                      select new Classes.TitleDescription 
                         { 
                              title = article.title.cdata,
                              description = article.description.cdata
                         };

只有一个像这样的列表框

<ListBox Name="abcd" Margin="10,0,30,0" SelectionChanged="ListBox_SelectionChanged" Height="486" Width="404" FontSize="20">
            <ListBox.ItemTemplate>
                <DataTemplate >
                    <StackPanel Margin="0,0,10,0" Width="380" Height="140">
                        <Grid  >
                            <TextBlock Text="{Binding description}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}" />
                            <TextBlock Text="{Binding title}" TextWrapping="Wrap" FontSize="{StaticResource PhoneFontSizeLarge}" />
                        </Grid>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>