2011-08-03 48 views
1

我是WPF和XAML的新手,我已經很後悔試圖在第一名。我不知道爲什麼運行下面的代碼時出現錯誤,我直接從WPF 4複製書中複製它。如果任何你們可以幫助我搞清楚了這我們,我會欠你們一個大忙:屬性'FactoryMethod'不存在於XML命名空間'http://schemas.microsoft.com/winfx/2006/xaml'

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:System="clr-namespace:System;assembly=mscorlib" 
     xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib" 
     xmlns:Person="clr-namespace:Src" 
     Title="MainWindow" Height="354" Width="525"> 
    <StackPanel> 
    <Label Name="lblText" Foreground="BlanchedAlmond" FontWeight="Bold" FontSize="20"> 
     Test 
    </Label> 
    <Label x:FactoryMethod="System:Guid.NewGuid">Test2</Label>  
    <ListBox SelectionChanged="ListBox_SelectionChanged"> 
     <Person:Person FirstName="Deepak" LastName="Sharma"></Person:Person> 
     <Person:Person FirstName="Nidhi" LastName="Sharma"></Person:Person> 
    </ListBox> 
    </StackPanel> 
</Window> 

回答

1

x:FactoryMethodXAML 2009 feature,它根據文檔中沒有標記編譯XAML的支持。

在WPF中,您可以使用XAML 2009功能,但僅適用於不是WPF標記編譯的XAML。標記編譯的XAML和XAML的BAML形式目前不支持XAML 2009語言關鍵字和功能。

除此之外Guid.NewGuid不返回Label所以我不知道這是怎麼應該擺在首位,以鍛鍊身體。

+0

我很抱歉代碼不正確,但我更關心FactoryMethod。我不確定爲什麼工廠方法在Visual Studio 2010中.NET 4.0的WPF應用程序中仍然不可用。您的意思是我必須使用類似XAMLPad或某些第三方應用程序才能使用它。 – dpak

+0

您必須從未編譯的XAML生成控件,例如可以使用'XamlReader'來完成,但認真**直到它在編譯XAML **中受支持時纔會受到影響,否則它是無用的。 –

+0

我正在使用x:Arguments標記得到類似的錯誤。是因爲同一個問題嗎? – dpak

0

H.B的回答很準確。既然你說你正在閱讀WPF4偷跑,請參閱頁表2.2開始,第67頁。

在這裏是MSDN不得不說的是:
"In WPF, you can use XAML 2009 features but only for XAML that is not markup-compiled. Markup-compiled XAML for WPF and the BAML form of XAML do not currently support the XAML 2009 keywords and features."

參考herehere

相關問題