0
public class ImageChannel
    {
        public string ImagePath { get; set; }

        public ImageSource Image
        {
            get
            {
                return new BitmapImage(new Uri("ms-appx://" + this.ImagePath));
            }
        }

        public List<ImageChannel> ImageChannels
        {
            get
            {
                return new List<ImageChannel>() 
           {
              new ImageChannel() { ImagePath="/Assets/image.png" }};
                // the other images
            }

        }
    }

<ListView ItemsSource="{Binding ImageChannels}" Margin="222,10,340,140">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Image  Height="113" Source="{Binding}" Stretch="None"/>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

为什么这不起作用?我真的迷路了。我只是想在我在列表视图中添加的项目旁边添加一个图像,例如“图像”|“微软”等。谢谢!

4

2 回答 2

0

您的代码存在一些问题。

首先,将 Image 属性的声明从 ...

public ImageSource Image

public BitmapImage Image

您对 ImageChannels 属性 get 访问器的实现将在每次访问时创建列表。在 ImageChannel 类中声明和初始化 List 的成员列表并在 get 访问器中返回它会更有意义。

Image.Source 的 XAML 代码中的绑定不完整。你需要指出你将它绑定到什么。

<Image Height="113" Source="{Binding Image}" Stretch="None" />

如果你解决了这些问题,你应该更接近让它发挥作用。

于 2013-06-14T20:58:57.777 回答
0

首先,您的 ImageChannel 类应如下所示:

public class ImageChannel
{
   public string ImagePath { get; set; }

   public BitmapImage Image
   {
       get
       {
          return new BitmapImage(new Uri("ms-appx://" + this.ImagePath));
       }
   }
}

然后在您后面的代码中,根据需要创建一个 ImageChannel 对象列表:

List<ImageChannel> imageChannel = new List<ImageChannel>();
imageChannel.Add(new ImageChannel()
{
  ImagePath = "image path here"
});

然后将 ImageChannel List 对象赋值给 ListView 的 itemsSource 属性

myListView.itemsSource = imageChannel;

xaml 中的 ListView 控件应如下所示

<ListView x:Name="myListView" Margin="222,10,340,140">
      <ListView.ItemTemplate>
            <DataTemplate>
                 <Image  Height="113" Source="{Binding Image}" Stretch="None"/>
             </DataTemplate>
       </ListView.ItemTemplate>
</ListView>

这应该适合你。

于 2013-06-17T15:34:29.067 回答