0

도메인 서비스를 통해 내 엔티티 모델과 combox를 바인딩하고 싶습니다.Silverlight Ria 서비스의 Combobox 바인딩

내 엔티티 모델 : 국가 (ID, NAME) TABLE_TEST 내 개체 모델과 도메인 서비스를 만들어

(PK_FIELD, FIELD2, COUNTRY_ID).

내 XAML은 :이 TABLE_TEST와 경계하지 것처럼

<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:COUNTRIES, CreateList=true}" Height="0" Name="COUNTRIESDomainDataSource" QueryName="GetCOUNTRIESQuery" Width="0"> 
     <riaControls:DomainDataSource.DomainContext> 
      <my:DomainService1 /> 
     </riaControls:DomainDataSource.DomainContext> 
    </riaControls:DomainDataSource> 

    <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:TABLE_TEST, CreateList=true}" Height="0" Name="TABLE_TESTDomainDataSource" QueryName="GetTABLE_TESTQuery" Width="0"> 
     <riaControls:DomainDataSource.DomainContext> 
      <my:DomainService1 /> 
     </riaControls:DomainDataSource.DomainContext> 
    </riaControls:DomainDataSource> 

    <ComboBox Name="COUNTRIESComboBox" 
       DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}" 
       DisplayMemberPath="ID" 
       SelectedValuePath="NAME" 
     SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}"> 
    </ComboBox> 

콤보 상자가 올바른 값 (모든 국가)로드하지만 보인다. TABLE_TEST의 레지스터를 변경하면 콤보의 값이 변경되지 않습니다.

내가 뭘 잘못하고 있니? 많은 예제를 보았지만 아무도 도메인 데이터 소스 및 엔티티 모델과 동일한 escenario입니다.

나는 실버와 5 개

감사

답변

0

DomainDataSource 실버 라이트 선택 상자에 대한 데이터 소스로 매우 나쁜 적합을 일하고 있어요. 지금까지 제가 설명한 Kyle McClennan's [MSFT] ComboBoxDataSource 유스 케이스에서 가장 신뢰할 수있는 것으로 나타났습니다. 사실, 그는 조언 :

1) 당신은 이 과감한 또는 반응 이상 생각하는 선택 상자

을 채울 DomainDataSource를 사용하지 마십시오,하지만 난 추천에 의해 스틱. 간단한 샘플에도 불구하고 다른 곳에서 볼 수 있습니다. ComboBoxes로 작업 할 때 DDS를 피하는 것이 좋습니다. DDS는 더 복잡한 ComboBox 시나리오에서는 확장되지 않습니다.

특히, 속성에서 비동기로 표시해야합니다.

<ComboBox Name="COUNTRIESComboBox" 
      DataContext="{Binding ElementName=COUNTRIESDomainDataSource, Path=Data}" ItemsSource="{Binding}" 
      DisplayMemberPath="ID" 
      SelectedValuePath="NAME" 
      SelectedValue="{Binding ElementName=TABLE_TESTDomainDataSource, Path=COUNTRY_ID}" 
      ex:ComboBox.Mode="Async"> 
</ComboBox> 
+0

이 예는 나와 동일하지 않습니다. 좋아, 그는 같은 상황을 설명하고 있지만 그는 내가 원하지 않는 개인화 된 콤보 박스를 사용하고있다. 나는 실버 라이트가 내 자신의 콤보 박스 확장을 구현하지 않으면이 문제에 대한 해결책이 없다는 것을 믿을 수 없다 ... – nachovall

+1

표준 콤보 박스이다. 주된 이유는 DomainDataSource가 비동기 적이기 때문이며 SelectedValue가 설정된 후에 ItemsSource를로드하는 것이 완료 될 수 있기 때문입니다. 최종 결과는 귀하가 SelectedValue를 잃는 것입니다. 확장 프로그램을 사용하지 않으려면 itemssource가 먼저로드되었는지 확인한 다음 선택한 값을 설정하십시오. 이것이 확장 기능입니다. –

+0

그건 그렇고, 나는 당신의 정서에 완전히 동의합니다. Silverlight는 너무 낮은 수준이며 신속한 LOB 개발에 유용하도록 수년간 연마하거나 타사 도구 키트가 필요합니다. –