Silverlight WCF服务绑定到网格 - 网格是空白的...我错过了什么?

时间:2009-05-27 23:43:24

标签: wcf silverlight model-view-controller silverlight-2.0 wcf-binding

这是我的情况 - 我正在开始我的第一个SL应用程序来自Windows背景,我有MVC模式。我想我可以利用tha模式,所以我直接创建了一个包含3个项目的SL应用程序(解决方案) - > 1持有我的模型(之前的业务对象),SL应用程序(当我选择SL项目时自动生成),以及1个SL.Web项目(当我选择SL项目时自动生成)。

以下是我所做的步骤:我在我的xaml文件上删除了一个空白网格,创建了一个服务,并且无需任何问题即可识别它。在我的Web项目中添加了“支持Silverlight的WCF服务”,并在我的项目中引用了我的“模型”项目。在[OperationContract]中,我创建了以下方法(服务):

[OperationContract]
public EmployeeCollection GetEmployees()
{
     EmployeeCollection employees = Model.EmployeeCollection.GetAllEmployees();
     return employees;
}

当我调试这个并设置断点时,我会看到员工返回时的数据,所以我知道数据正在返回。

现在,在我的page.xaml.cs文件中,似乎我的网格没有以某种方式填充,但不是为什么。

我有以下代码段:

void MyWebService_GetEmploteesCompleted(object sender, EmployeeWebService.GetEmployeesCompletedEventArgs e)
{
     dataGrid.ItemsSource = e.Result;
}

我还应该在哪儿看?我能错过什么?我是否必须添加其他代码片段才能使用我的BLL(模型)?

感谢您的任何建议。

=============================

BTW,在调试时,在“Autos”窗口中,我注意到_GetEMployeesCompleted()上出现了以下值:

dataGrid.ItemSource ........... Count = 30 e.Result ......... Count = 30

为什么值不显示在我的DataGrid上?

3 个答案:

答案 0 :(得分:0)

您是否在DataGrid上设置了AutoGenerateColumns = true? EmployeeCollection实现了哪些接口?

答案 1 :(得分:0)

请原谅这个愚蠢的问题,但由于我们没有看到如何实现Employee类,您的Employee类是否公开了公共属性(而不仅仅是公共成员)?您只能绑定到属性,这可能解释了为什么DataGrid不会自动生成列。

答案 2 :(得分:0)

这个问题有点陈旧,但我遇到了类似的问题......

您使用的是主题引擎吗?我注意到使用主题引擎的另一个控件(ChildWindow,Tab等)中的网格会导致子项无法呈现。我已经提出了工具包人员的错误,所以我们会看看它是否得到修复。