.NET MAUI中XAML引用外部DataModels类库失败问题排查
问题解决步骤
1. 修正XAML命名空间声明
你当前的xmlns声明完全错误:你写的xmlns:dms2="clr-namespace:DataModels;assembly=DataModels"里,clr-namespace指定的DataModels和实际类的命名空间MyModels不匹配。正确的声明应为:
xmlns:dms2="clr-namespace:MyModels;assembly=DataModels"
2. 移除Customer类的static修饰符
XAML的数据绑定(包括x:DataType)依赖可实例化的对象,而静态类无法创建实例,这是核心错误之一。修改后的类代码:
namespace MyModels { public class Customer // 去掉static关键字 { public int Id { get; set; } public DateTime Created { get; } public DateTime Updated { get; } public string? CustomerName { get; set; } public string? CustomerPhone { get; set; } public string? CustomerEmail { get; set; } public string? CustomerGuid { get; } // 为只读属性添加构造函数赋值逻辑,否则实例化后会是默认值 public Customer() { Created = DateTime.Now; Updated = DateTime.Now; CustomerGuid = Guid.NewGuid().ToString(); } } }
3. 额外检查项
- 确认DataModels类库的目标框架与MAUI项目兼容:比如MAUI使用net7.0时,类库可设置为netstandard2.0或net7.0,避免使用不兼容的框架版本。
- 验证MAUI项目已正确添加DataModels类库引用:右键MAUI项目→添加→项目引用,确认已勾选DataModels类库,且类库已编译成功。
完成以上修改后,XAML中x:DataType="dms2:Customer"即可正常识别。
内容的提问来源于stack exchange,提问作者Gratzy
相关产品推荐
相关产品推荐

