我还在学习,我很难找到这个问题的解决方案。我的问题很简单,我只想显示一个简单的列表使用ListView
使用MAUI。但我不能使这个工作。
这是我的代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Ventas_Citel.Views.SeleccionAlmacen"
xmlns:viewmodel="clr-namespace:Ventas_Citel.ViewModels"
x:DataType="viewmodel:SeleccionAlmacenViewModel"
Title="SeleccionAlmacen">
<ListView ItemsSource="{Binding Almacenes}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Almacenes.nombre}"
Detail="{Binding Almacenes.nombre}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
C#代码
public partial class SeleccionAlmacenViewModel : ObservableObject
{
// aqui se debe cargar la lista
public SeleccionAlmacenViewModel()
{
Almacenes = new ObservableCollection<Almacenes>
{
new Almacenes
{
id = "1",
nombre = "Almacen 1",
cve = "1"
},
new Almacenes
{
id = "2",
nombre = "Almacen 2",
cve = "2"
},
new Almacenes
{
id = "3",
nombre = "Almacen 3",
cve = "3"
}
};
}
[ObservableProperty]
ObservableCollection<Almacenes> almacenes;
}
我遇到的错误是在xaml
文件中显示{Binding Almacenes.nombre}
的地方如何显示它的项目列表?如何访问列表中的Almacenes
属性?
我该怎么解决呢?
我正在努力实现这样的目标:
2条答案
按热度按时间kyvafyod1#
我通过从xaml文件中删除x:DataType解决了这个问题。
很好,不过还有另一个解决办法。
通过删除
x:DataType
,你也禁用了视图的编译绑定,这并不是一件坏事,但它可能有助于理解什么是编译绑定,以及它与x:DataType
有什么关系:https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/compiled-bindings?view=net-maui-7.0。本质上,编译的绑定提高了绑定速度,这可以使MAUI应用更快。除了删除
x:DataType
之外,您还可以将其添加到DataTemplate
中。在这两种情况下,您都应该修复Almacenes
的绑定:为此,您还需要添加包含
Almacenes
类的名称空间(因为我不知道它在代码中的何处定义,所以我只是展示一个示例,您需要自己添加正确的名称空间;对于这个例子,我假设它位于Ventas_Citel.Models
)。mwg9r5ms2#
我通过从xaml文件中删除
x:DataType
解决了这个问题。