2010-12-17 1 views
1

RIA Services를 고민하고 DomainService를 만들었습니다. 그리드/데이터 폼 등을 바인딩 할 수 있습니다 ...하지만 내 인생에서 저는 어떻게 정의를 호출 할 수 있는지 알 수 없습니다. 해당 DomainService의 메소드 나는 다음과 같은 방법을 만들었습니다 :DomainService의 Invoke 작업에 어떻게 바인딩 할 수 있습니까?

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

콤보 박스의 아이템 컬렉션을 그 방법으로 (단방향으로) 바인딩 할 수 있기를 원합니다.

silverlight 페이지에는 바인딩에 사용되는 페이지에 컨트롤을 추가 할 때 리소스로 생성되는 peopleDomainService 개체가 있습니다. 하지만 아무 데서도 내 사용자 정의 방법을 찾을 수는 없습니다.

답변

1

방법을 당신이 방법을 보지 않는 묘사는 peopleDomainService의 인스턴스를 만든 경우 궁금한데 또는 경우 자동으로 XAML에 삽입 된 클래스 정의를 참조하기 만하면됩니다.

.Web 프로젝트를 다시 작성한 상태라면 아무 문제가 없습니다.

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

하고 결과를 처리하기 위해 GetCities_Loaded 이벤트를 추가합니다.

1

가정 당신의 호출 방법은 FooDomainService에 그렇게 호출 것 :

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

domainServiceInstance에 Context 속성이 없습니다. DataContext와 DomainContext가 있으며 둘 다 GetCities 메서드가 없습니다. –

+0

RIA가 만드는 두 개의 프로젝트 (.Web 및 Silverlight 프로젝트)가 있습니다. Silverlight에서 새 domainServiceInstanceDomainContext를 만들면 Intellisense를 사용하여 GetCities 메서드를 볼 수 있습니까? – Rus

+0

아니, 그게 문제 야. 나는 어제 밤 그것에 작업하고 있었고, domainServiceInstance.DomainContext를 내 DomainService 유형으로 캐스트해야만 얻을 수있는 것 같습니다. 당신의 대답은 나를 그 방향으로 이끌었습니다. 고맙습니다. +1 –