Xamarin Forms CollectionView:是否可以从不同的程序集分配 x:DataType?

XamarinForms CollectionView: is it possible to assign x:DataType from a different assembly?

我是 Xamarin.Forms 的初学者。在我的第一个项目(或多或少从 VS 2019 模板 'Flyout' 复制而来)中,我有一个在视图模型中定义的项目集合。集合的元素是在不同程序集中定义的 class 的实例。 在 CollectionView 的定义中添加了以下内容:

xmlns:local="clr-namespace:MyProject.ViewModels"
xmlns:model1="clr-namespace:MyLibrary.Domain;assembly=MyLibrary"

(MyLibrary 所在的程序集与 ViewModel 所在的程序集不同)。
当我现在尝试为 CollectionView 定义 ItemSource 和 x:DataType 时,出现了一个问题:我可以定义 ItemSource(来自 xmlns:local)或 DataType(来自 xmlns:model1),但不能两个都。通常可以从不同的程序集中获得元素 class 吗?如果是(我希望如此),如何正确地做到这一点?

我猜你正在尝试使用编译绑定,所以基本上要将你的编译绑定应用到你的 CollectionView,你只需要将它应用到你的页面,

<?xml version="1.0" encoding="utf-8" ?>
<local:BaseContentPage
xmlns:local="clr-namespace:MyProject.ViewModels"
xmlns:model1="clr-namespace:MyLibrary.Domain;assembly=MyLibrary"
x:DataType="local:BaseViewModel"

要将它应用到 CollectionView,请将它应用到 DataTemplate,而不是 CollectionView

<DataTemplate x:DataType="model1:BaseModel">

更多信息here,如有疑问,Goodluck随时回来