我正在开发一个.net maui应用程序,并试图在应用程序的页面之一添加选择器。正如微软文档(“www.example.com”)中所写https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/picker的,我可以直接在xaml文件中创建一个Item列表,但我需要在ViewModel类中声明这个列表,以便进行数据绑定。
下面是我的代码:XAML
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="PlumbingCompany.Views.Page7_RepairReport_1_"
xmlns:viewModels="clr-namespace:PlumbingCompany.Data"
Title="7. Repair Report (1)">
<StackLayout Margin="20,10,20,10">
<Label Text="Condition Found*" Margin="0,10,0,10"/>
<Picker ItemsSource="{Binding GetConditions}">
</StackLayout>
XAML.cs
using PlumbingCompany.Data;
namespace PlumbingCompany.Views;
public partial class Page7_RepairReport_1_ : ContentPage
{
public Page7_RepairReport_1_(Page7ViewModel viewModel)
{
BindingContext = viewModel;
InitializeComponent();
}
}
ViewModel.cs
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using PlumbingCompany.Models;
using PlumbingCompany.Views;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PlumbingCompany.Data
{
public partial class Page7ViewModel : ObservableObject
{
public Page7ViewModel()
{
}
public List<string> GetConditions()
{
return new List<string>
{
"Yes",
"NA",
"Dirty",
"New"
};
}
}
}
它不会在选择器的菜单中显示任何项目。enter image description here
我尝试了不同的方法来声明列表,通过可观察的集合,数组,但都没有帮助。
1条答案
按热度按时间oaxa6hgo1#
由于您在项目中使用CommunityToolkit.Mvvm,因此需要将Picker的
ItemsSource
属性设置为Page7ViewModel中的IList
集合,如下所示: