0

スポーツ ニュース アプリを作成しようとしています。すべてのニュース、説明などを表示するリストボックス内に 1 つのボタンを作成しました。ここにはない。ボタンの数は xml ファイルに依存します。ボタンをクリックすると、そのボタンのニュースと説明を次のページに表示したいと思います。それ、どうやったら出来るの?ありがとう

<ListBox x:Name="lstShow" FontFamily="Arial Black" VerticalAlignment="Center"
   Margin="-6,0,0,-26" Height="610" RenderTransformOrigin="0.5,0.5"
   Background="{x:Null}" Opacity="0.8">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Button Width="450" Height="Auto" Background="Black" 
                  BorderBrush="Transparent" FontWeight="Bold" FontSize="23" 
                  HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0,0,0,5" 
                  Opacity="0.95" Click="news_click" Foreground="White">
                    <StackPanel>
                        <Image Source="{Binding Imageurl}" Width="200" Height="Auto"
                          HorizontalAlignment="Center" VerticalAlignment="Center" />
                        <TextBlock   TextWrapping="Wrap" FontFamily="Segoe WP Black" 
                          Foreground="White" FontSize="18" HorizontalAlignment="Stretch" 
                          VerticalAlignment="Stretch" TextAlignment="Left" Width="350" 
                          Height="150">
                        <Run FontSize="23" Text="{Binding News}" />
                        <LineBreak/>
                        <Run Text="{Binding Desc}" FontWeight="Normal" FontSize="16" 
                          FontFamily="Segoe WP SemiLight"/>
                        <LineBreak/>
                        <Run Text="{Binding Newsurl}" FontWeight="Normal" FontSize="16" 
                          FontFamily="Segoe WP SemiLight"/>

                     </TextBlock>
                  </StackPanel>
               </Button>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

コードビハインド:

myData = XDocument.Parse(e.Result, LoadOptions.None);
// var data = myData.Descendants("headlines").FirstOrDefault();
var data1 = from query in myData.Descendants("headlinesItem")
    where query.Element("images").Descendants("imagesItem").Any()
    select new UpdataNews
    {
        News = (string)query.Element("headline").Value,
        Desc = (string)query.Element("description"),
        Newsurl = (string)query.Element("links").Element("mobile").Element("href"),
        Imageurl = (string)query.Element("images").Element("imagesItem").Element("url"),
    };
lstShow.ItemsSource = data1;
4

1 に答える 1

0

多くの方法があります。

  1. MVVM を使用する場合、最良の方法は、ボタンに Command を設定し、CommandParameter をバインディングに設定することです。

    <Button Command={Binding ClickCommand}" CommandParameter="{Binding}" ...

  2. MVVM を使用しない場合は、次のようにできます。

    <Button Tag="{Binding}" Click="My_Click_Event" ...

次に、コードビハインドで次のようにします。

public void My_Click_Event(object sender, EventArgs args)
{
  var o = ((FrameworkElement)sender).Tag;
}
于 2013-11-02T11:50:38.823 に答える