2015-08-18 3 views
0

Я пытаюсь обновить ярлык при изменении выбора поля со списком, чтобы он представлял счетчик из запроса. Если я не укажу suing на строку предложение where, он не позволит мне использовать значение из combobox.SelectedValue, он возвращает ноль.Обновление метки при изменении выбора Combobox

where (o.ShipCountry == "USA") 

И то, что я пытался:

private void cmbCountry_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     var ord = (from o in db.Orders 
        where (o.ShipCountry == cmbCountry.SelectedValuePath) 
        select o.ShipCountry).Count(); 

     lblOrders.Content = ord; 
    } 

Вот экран вопроса, чтобы помочь. Нуль должно быть подсчетом всех заказов в определенной стране, указанной в поле со списком. enter image description here

Любая помощь очень ценится!

+0

Является ли 'ShipCountry == Belgium'? Я имею в виду, он содержит название стран? –

+0

ShipCountry может быть любой страной из таблицы Orders. –

+1

Когда вы дойдете до функции, что такое значение 'cmbCountry.SelectedValuePath' – BugFinder

ответ

0

Я действительно осознал свою проблему! В запросе LINQ, который я использовал для заполнения ComboBox, использовался анонимный тип для ссылки на выбранный столбец. Я назвал его «cc».

var cmb = (from c in db.Customers 
        orderby c.Country descending 
        select new { cc = c.Country }).Distinct(); 

Это означало, связывающий путь был Binding Path=SelectedValue.cc

var cmb = (from c in db.Customers 
       orderby c.Country descending 
       select c.Country).Distinct(); 

Удаляя анонимный тип, я был в состоянии получить доступ к SelectedValue из выпадающего списка.

Смежные вопросы