UserControl XAML中缺少Array元素?

时间:2009-12-29 14:59:38

标签: wpf arrays xaml namespaces

这实际上是两个问题:

首先,当您编写XAML并且Intellisense无法识别您要使用的类型(在我的情况下,Array)时,您会采取哪些步骤来弄清楚发生了什么?我最初查看我的XML命名空间,以确保所有内容都按顺序显示。如果它是CLR类型(不是我自己的类型),那么我最终检查谷歌(通常找不到我需要的)。

在这种情况下,我的查询是“XAML WPF命名空间丢失数组”,它告诉我,正如我所怀疑的那样,数组在http://schemas.microsoft.com/winfx/2006/xaml,但它没有显示在Intellisense中。那是为什么?

我看到的所有示例都在Window或Application中,而不是像我这样的UserControl。这与我的问题有关吗?

好的,我猜这在技术上是三个问题。 :)

1 个答案:

答案 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>

    ...