我想在运行时从XAML初始化一个数组,就像在Android上一样。 我试过这样做:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:coll="clr-namespace:System.Collections;assembly=mscorlib">
<coll:ArrayList x:Key="Hello"></coll:ArrayList>
但是当我尝试像这样从XAML加载它时
new ResourceDictionary { Source = new Uri("Commands/MPC/resources.xaml", UriKind.Relative) }
我得到一个例外。不确定我是否正确。
答案 0 :(得分:0)
您不能在Silverlight中使用System.Collections.ArrayList,因为Silverlight没有它。请参阅MSDN documentation for the System.Collections namespace。
您可以做的一件事是创建System.Collections.Generic.List&lt; T&gt;的子类。除了填充泛型类型参数的值之外,它什么都不做:
using System.Collections.Generic;
public class MyList : List<object>
{
// Class has empty body
}
然后你可以在XAML中使用它:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mycoll="clr-namespace:MyNamespace;assembly=MyAssembly">
<mycoll:MyList x:Key="Hello"></mycoll:MyList>
</ResourceDictionary>
如果您知道自己只会将此类与SomeType
类型的对象一起使用,则可以继承List<SomeType>
而不是List<object>
。