locked
WCF RIA Serviceでのデータバインド RRS feed

  • 質問

  • WCF RIA Serviceを用いてサードパーティ製のコントロールとのデータバインドしようとしています。

    標準のコントロールに置き換えるとデータグリッドにバインドして、データグリッドにからデータの追加と削除を持っているものとお考えいただければと思います。

    このコントロールは"INotifyPropertyChanged"と"INotifyCollectionChanged "が実装されているカスタムコントロールであればバインドできるようなので実際行ってみたところデータの修正(INotifyPropertyChanged)はできたのですが、追加・削除(INotifyCollectionChanged )ができないようです。

    よくよくMSDNで確認してみるとWCF RIA Serviceで扱うEntitySetでは"INotifyCollectionChanged "が明示的インターフェースになっていたので行われていないのではないかと思っています。

    WCF RIA Serviceで扱うデータ側で何とか"INotifyCollectionChanged "を実現してコントロールと直接結びつける方法がないか模索しております。

    WCF RIA Serviceで扱うデータとコントロールの間にワンクッションかます案も考えておりますが、できるだけ余分な処理を行わせないスマートな方法ができればと思っております。

    よろしくご教授のほどお願いいたします。

    Silverlightの開発を始めたばかりなので説明または考え方自体が問題であるかもしれませんのそちらの方でもご指摘があればよろしくお願いいたします。

     

     

    2011年9月20日 3:00

回答

  • ご回答ありがとございます。

    バインド自体は実現できており、バインド先のコントロールからデータの追加と削除をしたときにバインドしたデータに反映されないことが問題になり投稿させていただきました。

    自己解決になりますがバインドしたDomainContextのデータに対して追加、削除する必要があることが分りました。

     

    2011年10月3日 2:12

すべての返信

  • こんにちは。

    サードパーティ製のコントロールの実装はよくわかりませんが、
    DomainDataSouceコントロールを使わない実装ならば

    ItemsSource = new ObservableCollection<TEntity>(loadOperatio.Entities);
    


    とやってもだめですか?

    また、DomainDataSouceコントロールを使っているならDataViewプロパティをバインドしてみるってのも手だと思います。

    2011年10月2日 16:28
  • ご回答ありがとございます。

    バインド自体は実現できており、バインド先のコントロールからデータの追加と削除をしたときにバインドしたデータに反映されないことが問題になり投稿させていただきました。

    自己解決になりますがバインドしたDomainContextのデータに対して追加、削除する必要があることが分りました。

     

    2011年10月3日 2:12