gpt4 book ai didi

c# - 使用在 XAML 资源中声明的数组

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:30 24 4
gpt4 key购买 nike

我的目标是检索 ObservableCollection<Color>出 XAML 资源文件,但我使用的是 .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) ,但我不确定应该传递给它什么。

我是做错了什么,还是只是漏掉了一些明显的东西?

最佳答案

WPF 在那里使用无类型集合。只需使用 Items.Cast<Color> () .

关于c# - 使用在 XAML 资源中声明的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com