2009-06-24 91 views
3

我想在XAML代碼的Windows.Resources部分中使用泛型類型。要附加的對象我的泛型集合由的ObservableCollection繼承的集合的通知,如下圖所示:在Window.Resources中使用泛型類型

public class PresentationModalCollection<T> : ObservableCollection<T> 
    { 
     public PresentationModalCollection(List<T> list) : base(list) 
     { 

     } 

    } 

有是返回列表中的ObservableCollection,如下圖所示的擴展方法:

public static class ExtensionMethods 
    { 
     public static PresentationModalCollection<T> ToObservableCollection<T>(this List<T> list) 
     { 
      return new PresentationModalCollection<T>(list); 
     } 
    } 

現在,我想在我的Window.Resources中使用PresentationModalCollection,如下所示:

<Window.Resources> 
     <LearningWPF:PresentationModalCollection x:Key="customers"> 
      <LearningWPF:Customer FirstName="Mohammad" LastName="Azam" /> 
     </LearningWPF:PresentationModalCollection> 


    </Window.Resources> 

當然,上面的代碼不起作用。有沒有辦法做到這一點,而不必創建一個從ObservableCollection繼承的類CustomerCollection?

+1

我認爲它不支持在.NET 3.5中,但對於.NET 4.0,它將被支持。看看下面的鏈接=> http://msdn.microsoft.com/en-us/library/dd489466(VS.100).aspx – azamsharp 2009-06-24 18:54:32

回答

2

Mike Hillberg有一些extensions可以幫助它,並工作得很好。我同意爲每個想要打包的類型創建一個CustomerCollection和集合類型將是霸道。 Sacha Barber也有在XAML中使用泛型的解決方案,但他的網站似乎已經超過了他目前的帶寬限制。