【发布时间】:2011-06-02 02:23:49
【问题描述】:
我有一个员工集合,每个项目都有自己的 ProjectResource 项目集合。 我正在尝试对列进行数据绑定,但 ProjectResource 不会绑定。
<data:DataGrid x:Name="TestGrid">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="First Name"
Binding="{Binding Person.FirstName}" />
<data:DataGridTextColumn Header="Last Name"
Binding="{Binding Person.LastName}" />
<data:DataGridTextColumn Header="Week 1"
Binding="{Binding ProjectResource[0].PercentRequired}" />
</data:DataGrid.Columns>
<data:DataGridTextColumn Header="Week 2"
Binding="{Binding ProjectResource[1].PercentRequired}" />
</data:DataGrid.Columns>
</data:DataGrid>
从上面你可以看到我们从 Employee.Person 中获取了 Name 详细信息,并且我们将子集合作为 Employee.ProjectResource。 这就是我所拥有的。从逻辑上讲,这很有意义(无论如何对我来说)它应该起作用,但事实并非如此。它显示名字和姓氏,但不显示项目资源数据。 也许这只是一个语法错误或一些简单的事情(我希望),但我们将不胜感激。
感谢阅读
【问题讨论】:
-
绑定不正确时调试器应该输出消息。你的类和绑定是什么样的?
-
项目资源绑定列中没有任何错误消息,只是没有数据。它们是从 RIA 服务中提取的独立实体。我尝试在所有 RIA 数据加载后分配项目源(所以我知道数据实际上在那里),但除了名称之外我什么也没有得到
-
ProjectResource 的类型是什么? ProjectResource 是在构造函数中初始化的吗?什么版本的 Silverlight?
-
这是 Silverlight 3。我不确定您的意思,ProjectResource 是数据库中的一个表,它链接到员工表和项目表。每个员工都可以作为项目每周的项目资源分配,因此在上面的示例中,项目有 2 周,每个员工的 ProjectResource 表中有 2 个条目。所有这些表都存在于 EF 模型中,并通过 RIA 服务加载到应用程序中。然后将 datacontext.Employees 分配为数据网格的 itemsource。
-
Silverlight 只能查看 CLR 对象 - ProjectResource 的 CLR 类型是什么?它必须派生自 IList
才能使用属性路径索引。
标签: silverlight data-binding datagrid service ria