Как получить данные в одном комбо на событии SelectionChanged другого комбо в Silverlight - PullRequest
0 голосов
/ 15 августа 2011

Мое приложение в Silverlight (c # .Net)

У меня есть форма с тремя полями со списком, Страна, Штат, Город.

Мне нужно заполнить поле со списком состоянийв поле со списком Событие выбора страны.

Когда пользователь выбирает какую-либо страну, в поле Состояние должно быть указано государство этой страны.

Таблицы базы данных:

  • Таблица стран- (CountryID, CountryName)
  • Таблица состояний- (StateID, StateName, CountryId)
  • Таблица городов- (CityID, CityName, StateId)

Чтобы получить значение из базы данных, я кодирую в файле Service.svc.cs

Это мой код.Этот код получит Country Record.

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

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

  //Code to Get State from State_Master table


  public class GetState
    {
        public string StateName { get; set; }
    }



   [OperationContract]
    public List<GetState> GetStateRecord(int countryId)
    {
        using (Entities context = new Entities())
        {
            return (from c in context.StateMasters
                    select new GetState 
                    {
                        StateName = c.StateName,
                    }).ToList<GetState>();
        }
    }
   //End of State Code

Это мой код в Form.xaml.cs.Он будет заполнять страны в поле со списком Страна

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

Пожалуйста, предложите мне Изменения в запросе в моем файле Service.svc.cs, чтобы получить требуемый результат или любой другой способ его получения.

    return (**from c in context.StateMasters
                            select new GetState**  

Это мой код в Form.xaml.cs на selectionChanged Event of Country Combobox

    private void cboCountry_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                var client = new ServiceReference1.AlumniServiceClient();

                client.GetStateRecordCompleted += (s, ea) =>
                {
                    cboState.ItemsSource = ea.Result.Select(b => b.StateName).ToList();                     };
                client.GetStateRecordAsync();
            }

Но я получу все Штаты, присутствующие в StatesMaster

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Это может не ответить на ваш прямой вопрос, но я считаю, что это лучшее решение для того, чего вы пытаетесь достичь Пусть конструкция данных вашей страны на стороне клиента имеет свойство ObservableCollection<State>, затем свяжите ItemsSource государственного ComboBox с SelectedItem.States ComboBox стран (используя привязку ElementName), тогда вам не нужно беспокоиться о SelectionChanged событиях и т. д. То же самое относится к отношениям между штатом и городом. Как не гражданин США я чувствую себя обязанным напомнить вам, что в большинстве других стран нет «государств»:)

0 голосов
/ 16 августа 2011

Это может не ответить на ваш прямой вопрос, но я считаю, что это лучшее решение для того, чего вы пытаетесь достичь
Пусть конструкция данных вашей страны на стороне клиента имеет свойство ObservableCollection<State>, затем связываете состояние ComboBox 'ItemsSource с SelectedItem.States стран ComboBox (используя привязку ElementName), тогда вы не не нужно беспокоиться о SelectionChanged событиях и т. д. То же самое относится к отношениям между штатом и городом.
Как гражданин неамериканского государства, я чувствую себя обязанным напомнить вам, что в большинстве других стран нет «государств»:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...