首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视图中的XamlParseException

视图中的XamlParseException
EN

Stack Overflow用户
提问于 2012-01-13 15:27:21
回答 1查看 2.6K关注 0票数 0

我有一个只显示标签的视图。

视图模型在视图中被正确注入,因为标签的文本绑定到viewmodel属性。现在,如果我试图在xaml中定义一个DataGrid,我就得到了一个XamlParseException:

{System.Windows.Markup.XamlParseException:键入“DataGrid”未找到。行: 16位置: 45 su System.Windows.Application.LoadComponent(Object component,Uri resourceLocator) su Common.Views.FunctionalityView.InitializeComponent() su Common.Views.FunctionalityView..ctor(IFunctionalityViewModel viewModel)}

但是,如果我在DataGrid myDg = new DataGrid()之前定义了一个InitializeComponent();,它就能工作。

我已经查过所有的参考资料,但还是找不到问题。

EN

回答 1

Stack Overflow用户

发布于 2012-01-16 15:53:26

听起来您的默认名称空间是混乱的或丢失的。如果没有xaml,就很难知道您应该做什么。

为自己解决这个问题的一个简单方法是创建一个新的UserControl,然后检查并比较在其根上定义的xmlns名称空间和视图的根元素。

WPF通过专门的命名空间定义来定位类型。它遵循以下格式

命名空间:命名空间

哪里

命名空间

包含类型定义的命名空间。而且,如果类型是在与xaml文件所在的程序集中不同的程序集中定义的,则必须在序言中包含该部分。[assembly name]是没有.dll扩展的程序集的名称(例如,assembly=mscorlib将导入mscorlib.dll)。要导入Int32类型并在xaml中使用它,您必须定义名称空间

代码语言:javascript
复制
xmlns:s="clr-namespace:System;assembly=mscorlib"

还存在一个程序集级属性,它允许您为程序集中的所有类型分配不同的命名空间。通常,这是一个URL的形式。这是传统而不是必然,IIRC。这就是为什么使用更传统的命名空间标识某些控件的原因,例如

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8852912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档