【问题标题】:Can I use different templates for different types of items in a ListBox?我可以为 ListBox 中的不同类型的项目使用不同的模板吗?
【发布时间】:2010-05-22 14:13:28
【问题描述】:

在 Silverlight 中描绘一个类似于 facebook 上的“提要”的列表框。每个项目可能是 1) 左侧带有图像的状态更新,2) 带有标题的照片缩略图,3) youtube 视频,或 4) 博客条目。每个项目使用不同的模板。你将如何做到这一点?

我计划在我的所有项目类型上实现一个通用接口。这意味着我会传入一个 IFeedItem 列表。

public interface IFeedItem
{
   DateTime Published { get; set; }
   string Owner { get; set; }
   string SourceUrl { get; set; }
}

public class StatusUpdateFeedItem : IFeedItem
{
   DateTime Published { get; set; }
   string Owner { get; set; }
   string SourceUrl { get; set; }
   ... more
}

public class PhotoFeedItem : IFeedItem
{
   DateTime Published { get; set; }
   string Owner { get; set; }
   string SourceUrl { get; set; }
   ... more
}

public class VideoFeedItem : IFeedItem
{
   DateTime Published { get; set; }
   string Owner { get; set; }
   string SourceUrl { get; set; }
   ... more
}

public class BlogEntryFeedItem : IFeedItem
{
   DateTime Published { get; set; }
   string Owner { get; set; }
   string SourceUrl { get; set; }
   ... more
}

//build the list
var list = new List<IFeedItem>
{
    new StatusUpdateFeedItem(),
    new PhotoFeedItem(),
    new VideoFeedItem(),
    new BlogEntryFeedItem()
}

ListBox1.ItemsSource = list;

在那之后,我设想 ListBox “足够聪明”,可以根据项目类型选择模板。

【问题讨论】:

    标签: silverlight-3.0 windows-phone-7


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多