【问题标题】:Databinding with comboxBox in silverlightSilverlight 中与组合框的数据绑定
【发布时间】:2012-06-28 00:17:24
【问题描述】:

我正在尝试使用 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();

谁能告诉我这里出了什么问题?

【问题讨论】:

    标签: silverlight linq wcf-ria-services


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

      您可能知道,RIA 中的大多数操作都是异步的。您应该在执行查询时意识到这一点。
      出于这些原因,您必须使用回调方法(@Zabavsky 的答案很好)。 另外我稍微推荐你使用 MVVM 模式而不是代码隐藏混乱。这将使您的代码和逻辑更清晰。

      【讨论】:

      • 谢谢大家。无论如何,使用silverlight的经验并不多。从未使用过 MVVM。这只是一个快速而肮脏的修复,几乎没有时间完成更多。再次感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 2011-06-29
      相关资源
      最近更新 更多