【问题标题】:Missing Array element in UserControl XAML?UserControl XAML 中缺少数组元素?
【发布时间】:2009-12-29 14:59:38
【问题描述】:

这其实是两个问题合一:

首先,当您编写 XAML 并且 Intellisense 无法识别您想要使用的类型(在我的例子中是 Array)时,您会通过哪些步骤来弄清楚发生了什么?我最初查看我的 XML 名称空间以确保一切看起来都井然有序。如果它是 CLR 类型(不是我自己的类型),那么我最终会检查 Google(通常找不到我需要的东西)。

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

我看到的所有示例都在窗口或应用程序中,而不是在像我这样的 UserControl 中。这和我的问题有关吗?

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

【问题讨论】:

    标签: wpf arrays xaml namespaces


    【解决方案1】:

    我不确定我是否真的理解您的问题...如果您想在 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>
    
        ...
    

    【讨论】:

    • 我刚刚重新阅读了我的问题,我意识到我忘了粘贴代码示例。然而,你的就是一个很好的例子。我的问题是,当我输入 x:Arr 时,“Array”不会出现在 Intellisense 弹出窗口中。我刚得到“ArrayExtension”。也就是说,我还是决定使用 x:Array ,一切都还在编译。那么这是一个智能感知问题吗?我习惯了它在 VC++ 中不好用,但是在 C# 开发中,Intellisense 从来没有让我失望过。
    • 我在 VS2008 和 VS2010 中遇到了同样的问题。但实际上这并不是一个真正的问题:即使您编写 x:ArrayExtension,它也应该可以工作。对于标记扩展,“扩展”后缀可以省略
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多