C# 使用数据库数据XAML帮助修改datagrid

C# 使用数据库数据XAML帮助修改datagrid,c#,silverlight,wcf,xaml,datagrid,C#,Silverlight,Wcf,Xaml,Datagrid,我有以下XAML代码: <sdk:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding ElementName=ticketDomainDataSource, Path=Data}" Margin="8,43,0,0" Name="ticketDataGrid" RowDetailsVisibilityMode="VisibleWhenSe

我有以下XAML代码:

    <sdk:DataGrid AutoGenerateColumns="False" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding ElementName=ticketDomainDataSource, Path=Data}" Margin="8,43,0,0" Name="ticketDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="795">
        <sdk:DataGrid.Columns>
            <sdk:DataGridTextColumn x:Name="ticketNameColumn" Binding="{Binding Path=ticketName}" Header="Ticket Name" Width="SizeToHeader" />
            <sdk:DataGridTextColumn x:Name="ticketDescColumn" Binding="{Binding Path=ticketDesc}" Header="Ticket Desc" Width="SizeToHeader" />
            <sdk:DataGridTextColumn x:Name="ticketNumberColumn" Binding="{Binding Path=ticketNumber}" Header="Ticket Number" Width="SizeToHeader" />
            <sdk:DataGridTextColumn x:Name="ticketTypeIdColumn" Binding="{Binding Path=ticketTypeId}" Header="Ticket Type Id" Width="SizeToHeader" />
            <sdk:DataGridTextColumn x:Name="seatIdColumn" Binding="{Binding Path=seatId}" Header="Seat Id" Width="SizeToHeader" />
            <sdk:DataGridTextColumn x:Name="showIdColumn" Binding="{Binding Path=showId}" Header="Show Id" Width="SizeToHeader" />
        </sdk:DataGrid.Columns>
    </sdk:DataGrid>

代码有某些标题,如seatId和showId,我希望它们显示座位和演出的实际名称,但我如何查询,我在Silverlight应用程序中使用域服务和上下文

如果你需要更多信息,请告诉我

谢谢

编辑: 用于绑定的查询:

EntityQuery<Web.Ticket> query =
               from t in _ticketContext.GetTicketsQuery()
               where t.bookingId == data.bookingId
               select t;
        LoadOperation<Web.Ticket> loadOp = _ticketContext.Load(query);
        tk.ticketDataGrid.ItemsSource = loadOp.Entities;
EntityQuery查询=
来自t in_ticketContext.GetTicketsQuery()
其中t.bookingId==data.bookingId
选择t;
LoadOperation loadOp=\u ticketContext.Load(查询);
tk.ticketDataGrid.ItemsSource=loadOp.Entities;
编辑: 数据模型:

编辑: 来自域服务的查询代码:

    public IQueryable<Ticket> GetTickets()
    {
        return this.ObjectContext.Tickets.Include("Seat");
    }
public IQueryable GetTickets()
{
返回此.ObjectContext.Tickets.Include(“座位”);
}

给你一个完整的答案

这里有一个用于描述导航属性的“打开”

如果您有一个带有SeatID的Tickets实体(在DB术语中为外键),则可以创建一个将Tickets实体连接到Seats实体的导航属性。在SQL术语中,这类似于编写以下内容:

Select Ticket.Name,Seats.SeatName加入Ticket.SeatID=Seats.SeatID上的座位

在您的情况下,您可以使用以下内容:

EntityQuery<Web.Ticket> query =
           from t in _ticketContext.GetTicketsQuery().Include("Seats")
           where t.bookingId == data.bookingId
           select t;
    LoadOperation<Web.Ticket> loadOp = _ticketContext.Load(query);
    tk.ticketDataGrid.ItemsSource = loadOp.Entities;
添加以下内容:

[Include]
public Seat Seats { get; set; }

需要更多信息。没有解决问题。是否有任何数据绑定工作?所有数据绑定都在工作,问题是所有绑定都是在ticketdomain数据源上完成的,我想使用不同的数据源(数据库中的不同表)来接收seatId的值,我将如何管理?是否使用EF?ADO.NET数据模型?对于DomainContext,如果您设置了导航属性,您只需删除.Include(“YourSeatTableHere”)即可将数据加载到对象中,这将允许您设置Path=SeatName。是的,我使用的是带有datacontext的ADO.NET数据模型,我真的不知道如何设置.Include?你能告诉我吗,谢谢你说数据绑定到目前为止工作正常,这意味着你已经在检索数据了。为什么不显示该代码,而不是实际上没有问题的XAML?感谢您编辑答案以匹配我的代码,但是Include()不可用,我只获取属性includeTotalCount您在edm中设置了导航属性吗?如果右键单击实体,则可以添加>导航属性。此外,我在最新编辑中移动了包含。我的错。导航属性已经包括在内了,正如你在我的问题中看到的,我已经包括了设计模型部分。另外,您将其更改为的零件中的包含也不起作用。仍然只是显示IncludeTotalCount。绑定显示数据,seatId显示为它在数据库中对应的Id,我还尝试从域服务中的Seat生成类复制代码,并将其输入票证,这确实显示了座椅及其属性,但在使用Seat.seatRow时,也没有显示任何调试过的代码。在座椅对象的元数据中,添加[Include]属性。编辑我的代码
[Include]
public Seat Seats { get; set; }