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端。我明天会尝试这个方法。非常感谢你,伙计。