Silverlights Dataform 与 MVVM 和 WCF Ria 服务

标签 silverlight mvvm wcf-ria-services dataform

晚上好,

我正在寻找帮助我了解如何将 Silverlight DataForm 与使用 WCF Ria 服务的 ViewModel 结合的人。我想要完成的是使用 DataForm 管理我的实体集合并利用其内置的导航、添加、编辑和删除功能。但是,我无法将其与我的 ViewModel 和 Ria 服务绑定(bind)在一起。

据我了解,DataForm 需要绑定(bind)到 ObservableCollection<T> .但是,当我从 WCF Ria 服务上下文中查询时。 IE。

_context.Load(_context.GetAllCustomersQuery(), loadCustomersQueryCallback, true);

我将在回调方法中收到一个 IQueryable,我必须将其转换为 ObservableCollection<T>像这样?
Customers = new ObservableCollection<Customer>(_context.Customers);
客户是我的 ViewModel 中的一个属性,就像这样......
    public ObservableCollection<Customer> Customers
    {
        get { return _customers; }
        set
        {
            if (_customers != value)
            {
                _customers = value;
                OnPropertyChanged("Customers");
            }
        }
    }

DataForm 绑定(bind)到 ViewModel 的 Customers 属性,我可以从我的数据源中查看数据,我可以在实体之间导航,我可以编辑现有实体并将更改保存回数据库,但是我无法添加或删除实体.

我对 Customers 属性所做的操作是否正确?我是否通过转换为新的 ObservableCollection 与上下文“断开连接”,因此实际上并未从上下文中添加或删除实体?

任何帮助是极大的赞赏。

问候,

最佳答案

我认为您在上一个问题中遇到了这个问题。当您创建一个新的 ObservableCollection 时,您已断开与集合更改跟踪(添加和删除)的连接。除了使用 OC,还有许多其他选项值得考虑。在您的情况下,看起来 EntitySet 或 EntityList 可能是最好的选择。有关这些类型的完整概要,请查看我在 collection binding in RIA Services SP1 上的帖子.

关于Silverlights Dataform 与 MVVM 和 WCF Ria 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305816/

相关文章:

c# - WP8 Listpicker 不要进入完整模式

android - 使用MVVM在RecyclerView的网格和线性之间切换的更好方法是什么?

c# - 使用 Entity Framework 从 WCF RIA 服务调用另一个 WCF 数据服务

c# - WPF/MVVM 换行面板方向

c# - 在 Entity Framework Code First 中为关联实体的数量添加一个属性

wcf - 我可以在 Entity Framework 4.3 中使用 RIA 服务吗?

c# - MVVM 光 : how to unregister Messenger

flash - 从 WebApp 与本地 PC 交互

silverlight - 在 silverlight 中使用 mvvm 进行异步调用

C# MVVM 处理 UserID 并将其传递给不同的模型和 View 模型