如何在WPF中定义/声明xaml命名空间?

时间:2015-04-09 12:29:48

标签: c# wpf xaml visual-studio-2012

前几天我在XAML中搜索DataProviders,我发现了这篇文章Bind to methods with ObjectDataProvider,它解释了ObjectDataProvider。所以我想试一试。因此,当我复制粘贴xaml和代码隐藏文件时,由于我的xaml文件中的命名空间不匹配,我得到了无效的标记错误。我通过反复试验解决了这个问题,但我没有得到XAML及其名称空间的完整概念,所以我想更详细地了解。

1 个答案:

答案 0 :(得分:1)

XAML依赖于.Net Framework的名称空间概念。您可以使用位于另一个命名空间中的组件(在您的示例中,它是ColorHelper)。但你必须告诉XAML编译器(是的XAML可以编译),在哪里找到你想要使用的东西。您通过首先声明一个xml命名空间来执行此操作:

xmlns:local="clr-namespace:SimpleObjectDataProvider"

然后在另一行

<ObjectDataProvider x:Key="colors"
    ObjectType="{x:Type local:ColorHelper}"
    MethodName="GetColorNames"/>

您可以使用此命名空间中定义的所有类/ WPF控件。 您发布的链接上的示例可能有点令人困惑,因为没有显示定义ColorHelper类的位置(在哪个命名空间中)。