C# 访问可观察集合中的嵌套列表进行绑定
我有响应对象,它们被添加到我的 控制器如下所示C# 访问可观察集合中的嵌套列表进行绑定,c#,linq,xaml,xamarin,observablecollection,C#,Linq,Xaml,Xamarin,Observablecollection,我有响应对象,它们被添加到我的 控制器如下所示 public void AddRoutes(IRestResponse response) { ScheduleDownloadResponse json = JsonConvert.DeserializeObject<ScheduleDownloadResponse(response.Content); ScreenController.Instance.route = new ObservableColl
public void AddRoutes(IRestResponse response)
{
ScheduleDownloadResponse json =
JsonConvert.DeserializeObject<ScheduleDownloadResponse(response.Content);
ScreenController.Instance.route = new
ObservableCollection<ScheduleRoute>();
ScreenController.Instance.vehicle = new
ObservableCollection<Vehicle>();
ScreenController.Instance.pickups = new
ObservableCollection<Pickup>();
ScreenController.Instance.compartment = new
ObservableCollection<Compartment>();
foreach (var item in json.Routes)
{
Debug.WriteLine(json.Routes);
ScreenController.Instance.route.Add(item);
foreach(var vehicle in item.Vehicles)
{
ScreenController.Instance.vehicle.Add(vehicle);
foreach (var compartment in vehicle.Compartments)
{
ScreenController.Instance.compartment.Add(compartment);
}
}
在视图中,我需要显示路线id、日期、计划、区域和
VehiclerLego来自Vehicles,Id来自供应商
在我的视图模型中,我有一个明细表,它是原始明细表的副本
从我的屏幕控制器收集
Schedule = new ObservableCollection<ScheduleRoute>();
Schedule = ScreenController.Instance.route;
Schedule=新的ObservableCollection();
Schedule=ScreenController.Instance.route;
我正在用Xamarin和Xaml编写一个移动pcl应用程序,我绑定到Schedule中,可以显示所有第一级
scheduleRoute中的属性,但不知道如何到达车辆。车辆自我和
车辆供应商Id
作为C#的新手,我不知道如何从scheduleRoute或
将3个收集对象(ScheduleRoute、车辆和供应商)合并到
检索值
有什么建议吗 因为您有
车辆的集合
,所以您需要选择其中一个。您可以提供一个Where()
子句,获取First()
或Last()
结果,或者只需选择。假设您有一条路线
,一辆皮卡
,以及车辆Id
:
public void GetInfo(Route route, Pickup pickup, int vehicleId)
{
Console.WriteLine(route.Id);
Console.WriteLine(route.Date);
Console.WriteLine(route.Schedule);
var vehicle = route.Vehicles.Where(v => v.vehicleId == vehicleId).FirstOrDefault();
if (vehicle != null)
{
Console.WriteLine(vehicle.VehicleRego);
}
Console.WriteLine(pickup.Supplier.Id);
}
除非在路线
、取货
供应商
和车辆
之间有循环参考,否则无法仅“猜测”信息。你必须像我一样提供它们。我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。
public void GetInfo(Route route, Pickup pickup, int vehicleId)
{
Console.WriteLine(route.Id);
Console.WriteLine(route.Date);
Console.WriteLine(route.Schedule);
var vehicle = route.Vehicles.Where(v => v.vehicleId == vehicleId).FirstOrDefault();
if (vehicle != null)
{
Console.WriteLine(vehicle.VehicleRego);
}
Console.WriteLine(pickup.Supplier.Id);
}