2009-12-29 57 views
2

這實際上是兩個問題之一:UserControl XAML中缺少數組元素?

首先,當您編寫XAML和智能感知無法識別您想要使用的類型(在我的情況下,Array)時,您會通過哪些步驟來弄清楚什麼是繼續?我最初查看了我的XML名稱空間,以確保一切看起來像它的順序。如果它是CLR類型(不是我自己的),那麼我最終會檢查Google(通常找不到我需要的)。

在這種情況下,我的查詢是「XAML WPF namespace missing Array」,它告訴我,如我所懷疑的,Array在http://schemas.microsoft.com/winfx/2006/xaml中,但它不顯示在Intellisense中。這是爲什麼?

我看到的所有示例都在窗口或應用程序中,而不是像我的UserControl一樣。這與我的問題有關嗎?

好的,我想這在技術上有三個問題。 :)

回答

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> 

    ... 
+0

我剛剛重新閱讀我的問題,並且我意識到我忘了粘貼代碼示例。不過,你的就是一個很好的例子。我的問題是,當我鍵入x:Arr時,「數組」不會顯示在智能感知彈出窗口中。我只是得到「ArrayExtension」。這就是說,我只是決定使用x:數組,而且所有東西都還在編譯中。那麼這是一個智能感知問題?我習慣了它在VC++中不能很好地工作,但在C#開發中,Intellisense從來沒有讓我失望。 – Dave 2009-12-29 15:42:55

+1

我在VS2008和VS2010中遇到同樣的問題。但實際上這不是一個真正的問題:即使您編寫x:ArrayExtension,它也應該可以工作。對於標記擴展,可以省略「擴展」後綴 – 2009-12-29 16:28:52