使用silverlight中的comboBox进行数据绑定

时间:2012-06-28 00:17:25

标签: silverlight linq wcf-ria-services

我正在尝试使用dataContext来填充组合框但总是一无所获:

EntityQuery<Tests> testQ = myDomainContext.GetTestQuery().Where(t => t == 5);
LoadOperation<Tests> loadOp = myDomainContext.Load(testQ)
comboxBoxTest.ItemSource = loadOp.Entities.Select(t => t.Name).Distinct().ToList();

有人可以告诉我这里有什么问题吗?

2 个答案:

答案 0 :(得分:1)

您可能无法加载实体。尝试

EntityQuery<Tests> testQ = myDomainContext.GetTestQuery().Where(t => t == 5);
LoadOperation<Tests> loadOp = myDomainContext.Load(testQ);
loadOp.Completed += (o, e) =>
    {
        comboxBoxTest.ItemSource = loadOp.Entities.Select(t => t.Name).Distinct().ToList();
    };

或者

myDomainContext.Load(testQ, new Action<LoadOperation<Tests>>(result =>
    {
        comboxBoxTest.ItemSource = result.Entities.Select(t => t.Name).Distinct().ToList();
    }), null);

答案 1 :(得分:1)

正如您所知, RIA 中的所有操作都是异步的。在执行查询时你应该意识到这一点。
由于这些原因,你必须使用回调方法(@ Zabavsky的答案很好)。 另外,我建议您使用 MVVM 模式而不是代码隐藏乱码。这将使您的代码和逻辑更清晰。