1

longlistselector アイテムにアクセスするにはどうすればよいですか。

私のXAMLは次のとおりです。

<Grid x:Name="ContentPanel" Grid.Row="1" HorizontalAlignment="Left" Height="Auto" Margin="30,20,0,0" Grid.RowSpan="2" VerticalAlignment="Top" Width="420">
  <phone:LongListSelector Name="longList" HorizontalAlignment="Left" Height="Auto" Margin="0" VerticalAlignment="Top" Width="420">
    <phone:LongListSelector.ItemTemplate>
      <DataTemplate>
        <Grid Background="Transparent">
          <Grid.ColumnDefinitions>
            <ColumnDefinition Width="210" />
            <ColumnDefinition Width="210" />
          </Grid.ColumnDefinitions>
          <Grid.RowDefinitions>
            <RowDefinition Height="160" />
          </Grid.RowDefinitions>
          <Image Name="first" Width="210" Margin="0" Source="{Binding ImageName}" Grid.Column="1" VerticalAlignment="Top" HorizontalAlignment="Left" />
          <Image Name="second" Width="210" Margin="0" Source="{Binding ImageName}" Grid.Column="2" VerticalAlignment="Top" HorizontalAlignment="Right" />
        </Grid>
      </DataTemplate>
    </phone:LongListSelector.ItemTemplate>
  </phone:LongListSelector>
</Grid>

最初2番目に画像オブジェクトにアクセスしたい

これら 2 つの画像オブジェクトのソースを、ImageName文字列を変数 (jpg 画像のパスを保持) として含むクラスのリストから連続して割り当て、次に次の 2 つを次の行に割り当てる必要があります。

4

1 に答える 1

0

ソリューションに新しいフォルダーを追加し、フォルダーの名前を「モデル」に変更します

次に、「ImageSourceClass」という名前の新しいクラスを追加します

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestApp.Model
{
    public class ImageSourceClass
    {
        public string ImageUrl { get; set; }

        public ImageSourceClass(string imageUrl)
        {
            this.ImageUrl = imageUrl;
        }
    }

    public class ImageData : ObservableCollection<ImageSourceClass>
    {
        public ImageData()
        {
            Add(new ImageSourceClass("/Assets/Images/Fruits.jpg"));
            Add(new ImageSourceClass("/Assets/Images/Beignets.jpg"));
            Add(new ImageSourceClass("/Assets/Images/Dessert.jpg"));
            Add(new ImageSourceClass("/Assets/Images/Pretzel.jpg"));
            Add(new ImageSourceClass("/Assets/Images/Shrimp.jpg"));
            Add(new ImageSourceClass("/Assets/Images/SteakSandwich.jpg"));
        }
    }
}

MainPage.xaml

以下の名前空間を MainPage.xaml に追加しました

注:[ソリューション名によって名前空間が異なる場合があります]

xmlns:MyModel="clr-namespace:TestApp.Model"

<Grid x:Name="LayoutRoot" Background="Transparent" >
<Grid.Resources>
      <MyModel:ImageData x:Key="imageDatasource"></MyModel:ImageData>
</Grid.Resources>
 <phone:LongListSelector x:Name="lstRestoItems" ItemsSource="{StaticResource imageDatasource}" LayoutMode="List">
     <phone:LongListSelector.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding ImageUrl}" Height="100" Width="100"         HorizontalAlignment="Left"></Image>
        </DataTemplate>
     </phone:LongListSelector.ItemTemplate>
 </phone:LongListSelector>

</Grid>

これで完了です。アプリケーションをクリーンアップして再ビルドし、f5 キーを押します。

于 2013-11-23T06:13:15.717 に答える