Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问可观察集合中的嵌套列表进行绑定_C#_Linq_Xaml_Xamarin_Observablecollection - Fatal编程技术网

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);
}