将ADO.NET实体框架结果绑定到Silverlight Datagrid

将ADO.NET实体框架结果绑定到Silverlight Datagrid,silverlight,entity-framework,Silverlight,Entity Framework,我在我的ASP.NET网站上有我的数据模型,我试图做的是检索tbl_公司的记录,并将这些记录绑定到silverlight中的datagrid—非常简单 我设置了数据库,以便tbl_公司有一个外键(company_scope_id),该外键链接到tbl_company_scope。从tbl_company_scope我基本上想显示“scope”列。我在silverlight中的代码如下: <data:DataGrid x:Name="dgCompanies" Grid.Row="0"

我在我的ASP.NET网站上有我的数据模型,我试图做的是检索tbl_公司的记录,并将这些记录绑定到silverlight中的datagrid—非常简单

我设置了数据库,以便tbl_公司有一个外键(company_scope_id),该外键链接到tbl_company_scope。从tbl_company_scope我基本上想显示“scope”列。我在silverlight中的代码如下:

    <data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding name, Mode=TwoWay}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn>

                <data:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding CompanyScope.scope}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
        </data:DataGrid.Columns>

    </data:DataGrid>

(所有的命名等都是正确的,但在绑定到datagrids ItemSource时基本上不会显示“范围”)

有人知道如何在datagrid中显示scope列吗

干杯

我在DataGrid中对“点”绑定进行了快速测试,测试结果与预期相符。我基本上使用了您的Xaml并连接了一些POCO数据类。代码如下:

<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name, Mode=TwoWay}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn>

                <data:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding CompanyScope.Scope}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
        </data:DataGrid.Columns>
    </data:DataGrid>
最后,构造函数后面的代码:

ObservableCollection<Company> companies = new ObservableCollection<Company>
            {
                new Company { Name="Company One", CompanyScope=new CompanyScope { Scope="Some Scope" }},
                new Company { Name="Company Two", CompanyScope=new CompanyScope { Scope="Some Other Scope" }},
                new Company { Name="Company Three", CompanyScope=new CompanyScope { Scope="More Scope" }}
            };

            dgCompanies.ItemsSource = companies;
ObservableCollection公司=新的ObservableCollection
{
新公司{Name=“Company One”,CompanyScope=new CompanyScope{Scope=“Some Scope”},
新公司{Name=“Company Two”,CompanyScope=new CompanyScope{Scope=“Some Other Scope”},
新公司{Name=“Company Three”,CompanyScope=new CompanyScope{Scope=“More Scope”}
};
dgCompanys.ItemsSource=公司;
我得到了网格中两列的预期结果,一列显示公司名称,另一列显示其范围。你确定你的作用域对象也被加载了吗?也许你加载了公司,但没有加载他们的作用域。

我在DataGrid中快速测试了“点”绑定,它按预期工作。我基本上使用了您的Xaml并连接了一些POCO数据类。代码如下:

<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
        <data:DataGrid.Columns>
            <data:DataGridTemplateColumn>
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name, Mode=TwoWay}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
            <data:DataGridTemplateColumn>

                <data:DataGridTemplateColumn.CellTemplate >
                    <DataTemplate>
                        <TextBlock Text="{Binding CompanyScope.Scope}"></TextBlock>
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>

            </data:DataGridTemplateColumn>
        </data:DataGrid.Columns>
    </data:DataGrid>
最后,构造函数后面的代码:

ObservableCollection<Company> companies = new ObservableCollection<Company>
            {
                new Company { Name="Company One", CompanyScope=new CompanyScope { Scope="Some Scope" }},
                new Company { Name="Company Two", CompanyScope=new CompanyScope { Scope="Some Other Scope" }},
                new Company { Name="Company Three", CompanyScope=new CompanyScope { Scope="More Scope" }}
            };

            dgCompanies.ItemsSource = companies;
ObservableCollection公司=新的ObservableCollection
{
新公司{Name=“Company One”,CompanyScope=new CompanyScope{Scope=“Some Scope”},
新公司{Name=“Company Two”,CompanyScope=new CompanyScope{Scope=“Some Other Scope”},
新公司{Name=“Company Three”,CompanyScope=new CompanyScope{Scope=“More Scope”}
};
dgCompanys.ItemsSource=公司;

我得到了网格中两列的预期结果,一列显示公司名称,另一列显示其范围。你确定你的作用域对象也被加载了吗?也许你加载了公司,但没有加载他们的作用域。

我刚刚测试了你的代码,你是对的,它应该像你说的那样工作,谢谢你的回复,我想我需要去了解更多关于ADO.NET EF的信息


再次干杯。

我刚刚测试了你的代码,你是对的,它应该像你说的那样工作,谢谢你的回复,我想我需要去了解更多关于ADO.NET EF的信息

再次干杯