【发布时间】:2023-03-12 19:28:01
【问题描述】:
我在 Xamarin 表单中使用列表视图分组,但有些数据未绑定。我正在使用 Xamarin Forms 3.1 最新版本。我的代码是:
<ListView ItemsSource="{Binding FacilityList}"
IsGroupingEnabled="true" HasUnevenRows="True" ItemTapped="OnItemTapped">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Heading}" TextColor="Black" FontSize="Medium" />
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Image Source="{Binding ImageName}" HeightRequest="50" WidthRequest="50"/>
<Label Text="{Binding Name}" TextColor="Black" FontSize="Medium"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我的视图模型是
private ObservableCollection<FacilitiesGroup> facilityList;
public ObservableCollection<FacilitiesGroup> FacilityList
{
get => facilityList;
set => SetProperty(ref facilityList, value);
}
private Facility selectedItem;
public Facility SelectedItem
{
get => selectedItem;
set
{
SetProperty(ref selectedItem, value);
}
}
public ICommand ItemTappedCommand { get; set; }
public FacilityViewModel()
{
FacilityDataStore facilityDataStore = new FacilityDataStore();
var items = facilityDataStore.GetList();
var groupList = new List<FacilitiesGroup>();
var group = new FacilitiesGroup()
{
Facilities = items.Where(x => x.IsSubscribed == true).ToList(),
Heading = "Subscribed"
};
var group2 = new FacilitiesGroup()
{
Facilities = items.Where(x => x.IsSubscribed == false).ToList(),
Heading = "Unsubscribed"
};
groupList.Add(group);
groupList.Add(group2);
FacilityList = new ObservableCollection<FacilitiesGroup>(groupList);
}
FacilityGroup 类代码是:
public class FacilitiesGroup
{
public List<Facility> Facilities { get; set; }
public string Heading { get; set; }
}
设施类是:
public class Facility
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public bool IsSubscribed { get; set; }
public string ImageName { get; set; }
}
我正在绑定数据,例如:
public MainPage()
{
InitializeComponent();
BindingContext = new FacilityViewModel();
}
我不明白我的代码有什么问题。任何帮助将不胜感激。 谢谢。
【问题讨论】:
-
哪些数据没有绑定?标题、图像名称或名称?还是全部?您是否在输出窗口中看到绑定错误?您能否更新视图模型代码,以便我们查看属性是如何定义的以及您是否正在实现接口。
-
其实一切都没有约束力。
-
如果没有更多信息,我真的无能为力。我需要查看您发布的代码周围的代码。你回答了我上一条评论的第一部分。剩下的呢?
-
抱歉,回复晚了。我已经更新了代码请看这个
-
@Neil,你看过我的视图模型吗?
标签: c# xaml listview xamarin xamarin.forms