我有一个 silverlight 项目,我需要一个数据网格来显示来自我的数据库模型的数据。为简单起见,请使用以下模型。
数据网格应显示已提交但未批准的文章。每个“文章提交”都有一个“作者”,可以通过导航属性访问。
我需要一个数据网格,其中包含来自“文章提交”和“作者”表的字段。
<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' 是由这样的'riaControl' 在 xaml 中设置的。
<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”时,“作者”导航属性似乎设置为空。
这是我的域服务中的代码
public IQueryable<RoleApplication> GetRoleApplications()
{
return this.ObjectContext.ArticleSubmissions.Include("Person");
}
文章提交的元数据
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; }
}
}
请,请,请帮助。如果您不理解我发布的大量代码,那么只需将我指向解释如何将实体和导航属性实体绑定在一起的参考资料。
此外,如果您发现任何错误的代码做法,请告诉我。我没有写任何这些,但我被赋予了让它工作的任务。我是银光的新手。