我想将Observable Collection对象绑定到列表视图。 我已经在视图模型中进行了调试,它显示集合在那里。但它似乎并没有在前端展示。绑定到ListView Xamarin Froms
这是XAML中:
<StackLayout>
<ListView
x:Name="dataList"
ItemsSource="{Binding routeLabels}" >
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding RouteName}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
背后的代码:
public partial class DriverDashboardView : ContentPage
{
private DriverDashboardViewModel driverdashboardviewmodel;
public DriverDashboardView()
{
InitializeComponent();
this.Title = "Driver's Dashboard";
BindingContext = driverdashboardviewmodel = new DriverDashboardViewModel();
}
protected async override void OnAppearing()
{
base.OnAppearing();
await driverdashboardviewmodel.GetLabelInfo();
}
}
和视图模型:
public class DriverDashboardViewModel:BaseViewModel,INotifyPropertyChanged
{
public DriverDashboardViewModel()
{
}
public async Task GetLabelInfo()
{
_routelabels = await service.return_label_info();
}
// property change handler to bind to UI
private ObservableCollection<RouteInfo> _routelabels;
public ObservableCollection<RouteInfo> routeLabels
{
get { return _routelabels; }
set
{
if (Equals(value, _routelabels)) return;
_routelabels = value;
OnPropertyChanged(nameof(routeLabels));
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
而且RouteInfo类:
public class RouteInfo
{
public string RouteName { get; set; }
public int Stops { get; set; }
public string DayOf { get; set; }
}
正如我所说,我把调试视图模型,我可以看到数据在那里。 但我不能在前端看到它。
任何想法?
如果您删除'ItemTemplate'你看到在你面前的条目正确数量-结束?如果是这样,那么你的模板是一个问题。如果没有,那么这听起来像是一个绑定问题。 – Mashton