2011-08-11 2 views
1

ComboBox 문제가 다시 돌아 왔습니다.다른 하나에서 선택된 값을 기준으로 하나의 콤보 상자 설정

내 응용 프로그램이 Silverlight에서 C# .Net 코드 (VS2010)로되어 있습니다. 3 개의 ComboBox가 있습니다.

  1. 나라
  2. 도시. 다음 인도의 모든 상태가 국가 콤보 상자에 채워 져야합니다 내가 다른 국가를 선택하면 국가 상태는 populated.For이 될 것을 : 나는 (인도 예) 내 콤보 상자에서 국가를 선택하면

지금 내 요구 사항입니다 나는 각 국가에 UniqueID를주는 것만으로 이러한 방식으로 데이터베이스를 만들었습니다.

내 데이터베이스 테이블

이 방법

  1. CountryTable (CountryId, COUNTRYNAME)
  2. StateTable (StateId, StateName, CountryId)
  3. CityTable (CityId, CityName이, StateName)
을 설계

이 방법은 내 DB를 설계했습니다.

Service.svc.cs 파일에 코드를 작성하여 Comboboxes를 채 웁니다. Service.svc.cs에서

코드 Service.svc.cs 코드의

[OperationContract] 
     public List<GetCountry> GetCountryRecord() 
     { 
      using (Entities context = new Entities()) 
      { 
       return (from c in context.CountryMaster 
         select new GetCountry 
         { 
          Country = c.CountryName, 
         }).ToList<GetCountry>(); 
      } 
     } 

public class GetCountry 
     { 
      public string Country { get; set; } 
     } 

끝. 메신저 내 콤보 상자를 채우는 방법 Form.Xaml.cs

var client = new ServiceReference1.AlumniServiceClient(); 
      client.GetCountryRecordCompleted += (s, ea) => 
       { 
        cboCountry.ItemsSource = ea.Result.Select(b => b.Country).ToList();; 

       }; 
      client.GetCountryRecordAsync(); 

이의

코드입니다. 이제 상태 값이 선택한 국가에 따라 변경되어야하며 유사하게 도시 콤보 상자 값은 선택한 상태에 따라 변경되어야합니다.

어떻게하면이 코드를 사용하고 너무 많은 코딩을하지 않아도됩니다. 재치 코드를 안내하시기 바랍니다

... 첫 ComboBox 또는 호출되는 바인딩 세터 할 때 데이터베이스 호출이 시퀀스에서 다음 ComboxBox을 채우는의 SelectionChanged 이벤트에

+2

질문을 좀 더 의미있는 제목을주십시오. – ChrisF

답변

0

하나.

그래서 처음에는 국가 콤보를 채 웁니다. 그런 다음 사용자가 국가를 선택하면 데이터베이스 요청이 전송되어 상태 조합이 채워집니다. 이 모든 것이 비동기 적으로 발생하기 때문에 UI가 발생하는 동안 UI를 묶어 두지 않습니다.

+0

아니, 실제로 내가 이것을 해결하기 위해 다른 코드를 시도했지만 필요한 결과가 달성되었습니다. 지금은 국가 코드에서 데이터를 채우는 것만 같습니다. 내가 언급 한 것처럼 서비스 파일에서 코딩했습니다. 지금 무엇을 달성할까요? 내가 정확히 어디에 코드 해야하는지 찾고 메신저 ?? 그리고 어떻게 ?? –

+0

@Ehtesham - 바인딩과 함께 MVVM을 사용하거나'SelectionChanged' 이벤트를 사용하여 선택한 국가를 업데이트합니까? – ChrisF

+0

Page_Loaded 이벤트를 사용하면 내 국가 콤보가 내 CountryMaster 테이블에서 사용할 수있는 모든 국가 이름으로 채워집니다. 이제 State 콤보 상자의 SelectionChanged 이벤트에서 상태 콤보 값을 변경해야합니다. 사용자가 인도에서 국가보다 국가 조합에서 인도를 선택하는 경우 국가 조합에 채워 져야 할 때처럼 선택을 다른 국가로 변경하면 각 국가가로드되어야합니다. DB 구조를 설명해야합니까? –

관련 문제