在.net Maui的XAML中使用外部库

cxfofazt  于 2022-12-07  发布在  .NET
关注(0)|答案(1)|浏览(246)

我正在通过创建MVVM应用程序来学习.net Maui。我在.net Maui应用程序外部有一个DataModel库,其中包含在Azure函数和本地应用程序之间传递的数据的数据模型。这样,模型在应用程序之间始终保持同步,并且只需在代码中更改/更新一次。
应用程序中有DataModels库的项目引用集。
但是,虽然我可以在C#代码中链接和访问DataModels库,但似乎无法在XAML端链接它。

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="LicenseApp.MainPage"
         xmlns:viewmodel="clr-namespace:LicenseApp.ViewModels"
         xmlns:dms="clr-namespace:TestApp.DataModels"
         xmlns:dms2="clr-namespace:DataModels;assembly=DataModels"
         x:DataType="viewmodel:MainViewModel">

我也试过:
xmlns:dms 2 =“我的模型.数据模型;程序集=数据模型”
xmlns:dms解析为应用程序中的本地DataModels文件夹,该文件夹可以正常工作。但是,我不希望在此应用程序中使用DataModels。
xmlns:dms 2给出错误:

Error   XLS0419 Undefined CLR namespace. The 'clr-namespace' URI refers to a namespace 'DataModels' that could not be found.

程式码提示不会出现在程式库中。
下面是尝试在此处调用库的代码:

<CollectionView Grid.Row="2" Grid.ColumnSpan="3" ItemsSource="{Binding Items}" SelectionMode="None">
        <CollectionView.ItemTemplate>
            <DataTemplate x:DataType="dms2:Customer">

DataModels库编译为“DataModels.dll”。客户DataModel看起来如下所示:

namespace MyModels
{
    public static class Customer
    {
        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; }
    }
}

我做错了什么?这应该是可能的,不是吗?

dohp0rv5

dohp0rv51#

我发现了问题...
在我的DataModels库中,我有:

public static class Customer
    {
       ....
    }

这在我的xaml文件中没有解决,但它能够在代码中解决。
一旦我从声明中删除了“static”,代码提示就找到了类和程序集。之后一切都编译好了。

相关问题