XML名称空间“http://schemas.microsoft.com/winfx/2006/xaml”中不存在属性“FactoryMethod”

时间:2011-08-03 01:09:54

标签: .net wpf xaml c#-4.0

我是WPF和XAML的新手,我已经后悔尝试了解它。我不确定为什么运行下面的代码时出现错误,我直接从WPF 4释放的书中复制了它。如果你们中的任何一个人能帮助我解决这个问题,我将非常感谢你们:

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

2 个答案:

答案 0 :(得分:1)

x:FactoryMethodXAML 2009 feature,根据文档在标记编译的XAML中不支持。

  

在WPF中,您可以使用XAML 2009功能,但仅适用于非WPF标记编译的XAML。标记编译的XAML和BAML形式的XAML目前不支持XAML 2009语言关键字和功能。

除此之外Guid.NewGuid没有返回Label所以我不确定这应该如何解决。

答案 1 :(得分:0)

H.B的答案是准确的。由于您说您正在阅读WPF4 Unleashed,请参阅从第67页开始的页面表2.2。

以下是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