2010-05-22 7 views
4

Silverlight에서 Facebook의 "피드"와 비슷한 목록 상자 그림. 각 항목은 1) 왼쪽 이미지에 상태 업데이트, 2) 제목이있는 사진 미리보기 이미지, 3) YouTube 비디오 또는 4) 블로그 항목 일 수 있습니다. 각 항목은 다른 템플리트를 사용합니다. 어떻게이 일을 완수하겠습니까?ListBox에서 다른 유형의 항목에 다른 템플릿을 사용할 수 있습니까?

모든 항목 유형에서 공통 인터페이스를 구현할 계획이었습니다. 이것은 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를 구상했습니다.

답변

관련 문제