似乎 Xamarin ListView 绑定在更新的 VS 2019 16.11.3 中被破坏。 CollectionView 也绑定。有人可以调查一下吗?

Posted

技术标签:

【中文标题】似乎 Xamarin ListView 绑定在更新的 VS 2019 16.11.3 中被破坏。 CollectionView 也绑定。有人可以调查一下吗?【英文标题】:It seems Xamarin ListView binding is broken in updated VS 2019 16.11.3. CollectionView binding too. Can Someone look into it? 【发布时间】:2021-11-22 20:59:16 【问题描述】:

我浪费了 2 天的时间来找出问题所在,但我无法解决。我尝试了所有可能的示例、来自 Github 的源代码、教程、文章等。我无法将 List 及其内容绑定到 ListView 或 CollectionView。

Visual Studio 版本 16.11.3 Xamarin 版本

我的视图模型。我尝试使用列表和可观察集合。

我的代码隐藏文件。我尝试了从 Xaml 以及文件后面的代码进行绑定。

我的 Xaml 文件。我花了 2 天时间来解决这个绑定问题:(

模型中的一个简单类。

我写了一个新页面,它适用于 ListView 内容的基本声明,但是......,

我已将工作代码复制到主页上,但它在主页上不起作用。在其他页面上正常工作的 listView 在主页上不起作用。

如果我注释掉 Item 模板,我会以某种方式看到绑定到 UI 的字符串列表。

如果我取消注释,我会看到项目模板有效,但

如果我重新启动应用程序,我需要重复该过程。 ListView Binding 和 collectionView Binding 的一切都搞砸了。我们已将列表和集合的内容声明为公共属性并从 ViewModel 访问。很忙

【问题讨论】:

请勿将代码或错误作为图片发布 如果你将你的 repo 上传到某个地方,那么诊断你的实际问题会更容易。 我检查了您提供的存储库中的代码。它运作良好。请检查我的截图。 imgur.com/undefined能否提供更多细节让我重现? 这里是一个 repo zang。 github.com/fewbackseven/listView。无论如何,詹姆斯解决了它。我必须将我的类的数据类型单独指定给数据模板。我有预感,但我不知道该怎么做。我查看了教程、文章和微软官方文档,但找不到解决方案。最后我不得不把它贴在这里。无论如何,谢谢你们。 【参考方案1】:

这里的问题是您为页面设置了x:DataType,这很棒,因为它是编译绑定,但这意味着您还需要设置它和 DataTemplate 以便它知道其中项目的类型.因此,对于第一个 ListView 字符串,您可以使用 <DataTemplate x:DataType="x:String">,然后对于您的客户,它会是 <DataTemplate x:DataType="local:Customer">

看看这个 repo,根据我所看到的似乎对我有用:https://github.com/jamesmontemagno/App4 & https://github.com/fewbackseven/listView/pull/1

【讨论】:

我已将我损坏的项目上传到一个仓库中。在这个项目中,问题仍然存在。请看一次。我正在学习 PRISM,我只是从他们的工具箱中拖放了这个 LISTVIEW。 github.com/fewbackseven/listView 哇..你们太棒了..感谢您的支持。我很抱歉。我不知何故未能在文章或教程或微软官方文档中找到它:(。我正在参考和学习你的“MONKEY FINDER”教程,但现在我也找不到它:(

以上是关于似乎 Xamarin ListView 绑定在更新的 VS 2019 16.11.3 中被破坏。 CollectionView 也绑定。有人可以调查一下吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xamarin 表单中将数组绑定到 ListView

更新 ObservableCollection 无法正确更新 Xamarin 表单中的 ListView

Xamarin 将 ListView 项动态更新到 GUI

Xamarin 在 ListView 中全选

Xamarin 表单从 listview 绑定到 viewmodel

如何在 Xamarin.Forms 中的 ListView 内绑定列表