这实际上是两个问题:
首先,当您编写XAML并且Intellisense无法识别您要使用的类型(在我的情况下,Array)时,您会采取哪些步骤来弄清楚发生了什么?我最初查看我的XML命名空间,以确保所有内容都按顺序显示。如果它是CLR类型(不是我自己的类型),那么我最终检查谷歌(通常找不到我需要的)。
在这种情况下,我的查询是“XAML WPF命名空间丢失数组”,它告诉我,正如我所怀疑的那样,数组在http://schemas.microsoft.com/winfx/2006/xaml,但它没有显示在Intellisense中。那是为什么?
我看到的所有示例都在Window或Application中,而不是像我这样的UserControl。这与我的问题有关吗?
好的,我猜这在技术上是三个问题。 :)
答案 0 :(得分:3)
我不确定我真的明白你的问题是什么......如果你想在XAML中声明一个数组,请使用x:Array markup extension。数组Int32
:
<UserControl x:Class="YourNamespace.YourClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<UserControl.Resources>
<x:Array x:Key="arrayOfInt32" Type="sys:Int32">
<sys:Int32>4</sys:Int32>
<sys:Int32>8</sys:Int32>
<sys:Int32>15</sys:Int32>
<sys:Int32>16</sys:Int32>
<sys:Int32>23</sys:Int32>
<sys:Int32>42</sys:Int32>
</x:Array>
</UserControl.Resources>
...