Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# 对两个表使用OnNavigatedTo-Windows Phone 8_C#_Windows Phone 8_Datacontext - Fatal编程技术网

C# 对两个表使用OnNavigatedTo-Windows Phone 8

C# 对两个表使用OnNavigatedTo-Windows Phone 8,c#,windows-phone-8,datacontext,C#,Windows Phone 8,Datacontext,使用此代码,一切都正常: string selectedRowOrderId = ""; if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedRowOrderId)) { int selectedID = int.Parse(selectedRowOrderId); var query = from TblO

使用此代码,一切都正常:

string selectedRowOrderId = "";
   if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedRowOrderId))
            {
                int selectedID = int.Parse(selectedRowOrderId);
                var query = from TblOrders order in orderDB.Orders
                            where order.OrderId == selectedID
                            select order;

                DataContext = new ObservableCollection<TblOrders>(query)[0];
            }
string selectedRowOrderId=“”;
if(NavigationContext.QueryString.TryGetValue(“selectedItem”,out selectedRowOrderId))
{
int-selectedID=int.Parse(selectedRowOrderId);
var query=来自orderDB.Orders中的TblOrders订单
其中order.OrderId==selectedID
选择订单;
DataContext=新的ObservableCollection(查询)[0];
}
我可以在页面上显示订单详细信息。但是我想在同一页上显示订单产品(来自TBLProductsOrder),作为订单详细信息下的列表。我的意思是,DataContext必须从TBLProductsOrder再进行一次查询,如下所示:

DataContext = new ObservableCollection<TblProductsToOrder>(query2)[0];
public class OrderDetailsAndProducts
{
    public Order Order { get; set; }
    public List<TblProductsToOrder> OrderProducts { get; set; }
}
DataContext=newobservetecollection(query2)[0];

你能帮助我如何在DataContext中同时使用这两个吗

如果无法更改模型以包含表之间的引用,则可以使用另一种解决方案:

public class OrderDetailsAndProducts
{
    public TblOrders Order { get; set; }
    public TblProductsToOrder OrderProduct { get; set; }
}
在分配给DataContext的任务中,您应该这样做

OrderDetailsAndProducts orderDetails=
      new OrderDetailsAndProducts
      {
          Order = query.FirstOrDefault(),
          OrderProduct = query2.FirstOrDefault()
      };
DataContext = orderDetails;
OrderDetailsAndProducts orderDetails=
      new OrderDetailsAndProducts
      {
          TblOrders = query.FirstOrDefault(),
          OrderProducts = query2.ToList()
      };
DataContext = orderDetails;
根据我对数据库模式的了解,如果是这样的话,您应该有更多的产品,保存这两个产品的类应该更像这样:

DataContext = new ObservableCollection<TblProductsToOrder>(query2)[0];
public class OrderDetailsAndProducts
{
    public Order Order { get; set; }
    public List<TblProductsToOrder> OrderProducts { get; set; }
}

你能更好地解释你的需求吗?我认为你应该给你的部分代码命名,比如
headerPanel.DataContext=query.FirstOrDefault()itemsPanel.DataContext=query2.ToList()对于详细信息,我有3个表(TblOrders、TblProducts和TBLProductsOrders),我有一个订单列表。当点击其中一个按钮时,我可以获得OrderDetailsPage。(订单日期、客户名称等)我希望能够将产品作为列表添加到此页面。但在这种情况下,,我的datacontext只有TblOrders值…你可以扩展你的Orders类,使其包含一个只有在需要时才会填充的产品列表。可能有很多比我尝试的更好的方法:)但我唯一的问题是在datacontext中放置2个查询,并使用这个新的datacontext绑定XAML端。我明天会尝试这个方法。非常感谢你,伙计。