使用C#.net连接多个表并绑定到单个Listview中

时间:2012-09-17 18:06:15

标签: c# .net linq xaml dynamic-linq

我有三张桌子可以加入名为Books,Borrowers和Transactions。 数据库方案如下:

  1. 图书(的BookID,BOOKNAME,ISBN);
  2. 借款(BorrowerID,BorrowerName,BorrowerLevel);
  3. 交易(TransactionID的,BorrowerID,的BookID,BorrowDate,ReturnDate);
  4. 相应的类别分别为Book,Borrower和Transaction。现在我想从这三个表中选择BookID,BookName,BorrowerID,BorrowerName,BorrowDate和ReturnDate,并在具有gridview控件的列表视图中显示。 XAML代码:

    <Grid>
            <ListView Margin="15,57,58,57" Name="borrowedBookList" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding }" KeyDown="borrowedBookList_KeyDown">
                <ListView.View>
                    <GridView>
                        <GridView.Columns>
                            <GridViewColumn Width="80" Header="Borrower ID" DisplayMemberBinding="{Binding Path=BorrowerID}"/>
                            <GridViewColumn Width="220" Header="Borrower Name" DisplayMemberBinding="{Binding Path=BorrowerName}"/>
                            <GridViewColumn Width="220" Header="Book Name" DisplayMemberBinding="{Binding Path=BookName}"/>
                            <GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=BorrowDate}"/>
                            <GridViewColumn Width="100" Header="Return Date" DisplayMemberBinding="{Binding Path=ReturnDate}"/>
                           </GridView.Columns>
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>
    

    现在我如何加入这些表并将结果datacontext分配给borrowedBookList?

    三江源

    Arefin Sami

2 个答案:

答案 0 :(得分:1)

borrowedBookList.DataSource =
    from borrower in Borrowers
    join transaction in Transactions
        on borrower.BorrowerID equals transaction.BorrowerID
    join book in Books
        on transaction.BookID equals book.BookID
    select new
    {
        borrower.BorrowerID,
        borrower.BorrowerName,
        book.BookName,
        transaction.BorrowDate,
        transaction.ReturnDate,
    }

borrowedBookList.DataBind();

答案 1 :(得分:0)

你看过hierarchydatatemplate类了吗?

您的模型或视图模型需要包含相应的关系。从那里,适当的datatemplate应该很好地工作。

相关问题