0

基本的に、複数のクラスを単一のリストボックスにバインドする必要があるため、ネストされたリストボックスを作成していますが、これは実行できないため、ネストされたリストボックスになります。

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」はクラスの説明にバインドする必要があります。両方のクラスには、「cdata」という 1 つの文字列フィールドしかありません。

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」では「現在のコンテキストには名前 ab が存在しません」と表示されます

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1

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
                         };

そして、このようなリストボックスは1つだけです

<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>
于 2012-12-06T15:26:01.097 に答える