私の目標は、XAML リソース ファイルから取得するObservableCollection<Color>ことですが、.NET 3.5 を使用しているため、XAML でジェネリック型を直接宣言することはできません。私の現在の解決策は、XAML で Color 配列を宣言することです。
<x:Array Type="Color" x:Key="ColourPickerStandardColours">
    <Color>#974806</Color>
    <Color>#FF0000</Color>
    <Color>#FFC000</Color>
    ...
    <Color>#7030A0</Color>
</x:Array>
コードでそれを取得します。
var standardColours = new ObservableCollection<Color>(
    (Color[])TryFindResource("ColourPickerStandardColours"));
ただし、これを実行しようとすると、次の例外が発生します。
InvalidCastException
Unable to cast object of type 'System.Windows.Markup.ArrayExtension' to type
    'System.Windows.Media.Color[]'.
ArrayExtension にはがありますが、を構築するIList Itemsにはジェネリックが必要です。を使用できると思いますが、何を渡せばよいかわかりません。IEnumerable<T>ObservableCollection<T>ProvideValue(IServiceProvider)
私は何か間違ったことをしていますか、それとも明らかな何かを見逃していますか?