我有一个silverlight项目,我需要一个datagrid来显示数据库模型中的数据。为简单起见,请使用以下模型。
数据网格应显示已提交但未获批准的文章。每个“文章提交”都有一个“作者”,可以通过导航属性访问。
我需要一个包含“文章提交”和“作者”表格字段的数据网格。
<sdk:DataGrid AutoGenerateColumns="False"
ItemsSource="{Binding ElementName=articleApplicationDataSource,Path=Data}"
Name="articleSubmissionDataGrid"
RowDetailsVisibilityMode="VisibleWhenSelected">
<sdk:DataGrid.Columns>
...some column template definitions
<!--THIS LOADS FINE!-->
<sdk:DataGridTextColumn x:Name="articleTitleColumn"
Binding="{Binding Path=Title}" Header="Title" />
<!--THIS DOESN'T-->
<sdk:DataGridTextColumn x:Name="authorNameColumn"
Binding="{Binding Path=Author.Name}" Header="Name" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
假设我的'作者'实体被加载到'articleSubmissionDataSource'(似乎是)。我的绑定路径= Author.Name是否是通过导航属性访问“作者”实体的正确方法?
顺便说一句: 'articleApplicationDataSource'在xaml中被这样的'riaControl'设置。
<riaControls:DomainDataSource AutoLoad="True"
d:DesignData="{d:DesignInstance my1:ArticleSubmission, CreateList=true}" Height="0"
LoadedData="roleApplicationDomainDataSource_LoadedData"
name="articleSubmissionDomainDataSource"
QueryName="GetArticleSubmissionsQuery" Width="0" LoadSize="500">
<riaControls:DomainDataSource.DomainContext>
<my:OrganizationContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
另外,我注意到我的域服务的GetArticleSubmissions方法返回了“作者”导航属性的有效信息。但是当我检查'LoadedDataEventArgs e'时,'Author'导航属性似乎被设置为null。
以下是我的域名服务中的代码
public IQueryable<RoleApplication> GetRoleApplications()
{
return this.ObjectContext.ArticleSubmissions.Include("Person");
}
ArticleSubmission的元数据
internal sealed class ArticleSubmissionMetadata
{
// Metadata classes are not meant to be instantiated.
private ArticleSubmissionMetadata()
{
}
[Include]
public Author Author { get; set; }
public DateTime Date { get; set; }
public int ID { get; set; }
public int AuthorID { get; set; }
public string Title { get; set; }
}
}
拜托,拜托,请帮忙。如果您不了解我发布的大量代码,那么请指向我,以解释如何在一个地方将实体和导航属性实体绑定在一起。
此外,如果您发现任何错误的做法,请告诉我。我没有写任何这个,但我被赋予了让它工作的任务。我是银光的新手。
答案 0 :(得分:1)
...原来我列出的所有内容都是正确的。我的问题是我在错误的查询中得到了我的.include(“作者”)!我会留下这个例子以防其他人有这个问题。我发现很难找到示例文本。
如果您来这里寻求帮助,请确保您的域名服务中包含(“人员”)。