2010-12-17 16 views
1

私はRIAサービスを手直ししています。私はDomainServiceを作成しました。これをグリッド/データフォームなどにバインドすることはできます...しかし、私の人生では、私はカスタムそのDomainServiceのメソッド私はこのようなメソッドを作成しました:DomainServiceのInvoke操作にどのようにバインドできますか?

[Invoke] 
public IEnumerable<string> GetCities() 
{ 
    return new List<string>() { "some city" }; 
} 

コンボボックスのアイテムコレクションをその方法(一方向性)にバインドできるようにしたいと思います。

silverlightページには、バインディングに使用されるページにコントロールを追加するときにリソースとして作成されるpeopleDomainServiceオブジェクトがあります。しかし、私のカスタム方法のどこにもそれを見つけることができません。

fooDomainServiceInstance.Context.GetCities((op) => 
{ 
    if (op.HasError) 
    { 
    // Handle error. 
    } 
    else 
    { 
    var data = (op as InvokeOperation<IEnumerable<string>>).Value; 
    // Do something with the data... 
    } 
}, null); 

答えて

1

をあなたが方法を見ていない記述されている方法は、あなたがpeopleDomainServiceのインスタンスを作成している場合は、あなたがしている場合、私は思ってしまう:あなたのinvokeメソッドがFooDomainServiceであるあなたがそれを呼びたいと仮定

1

自動的にXAMLに入れられたクラス定義を参照するだけです。

.Webプロジェクトを再構築していれば、このようなことはうまくいくはずです。

peopleDomainService ldCTX = new peopleDomainService(); 
var query = ctx.GetCities(); 
ldCTX.Load(query, GetCities_Loaded, null); 

結果を処理するためにGetCities_Loadedイベントを追加します。

+0

domainServiceInstanceにContextプロパティが存在しないという問題があります。 DataContextとDomainContextがあり、いずれもGetCitiesメソッドを持っていません。 –

+0

RIAが作成する2つのプロジェクト(.WebとSilverlightの2つのプロジェクト)があります。 Silverlightの場合、新しいdomainServiceInstanceDomainContextを作成すると、Intellisenseを使用してGetCitiesメソッドが表示されますか? – Rus

+0

いいえ、それは問題です。私は昨夜それについて取り組んでいました。domainServiceInstance.DomainContextを取得するには、domainService型にキャストする必要があるようです。あなたの答えは私をその方向に導いてくれました。ありがとうございました。 +1 –

関連する問題