2012-06-28 3 views
0

Я пытаюсь использовать DataContext для заполнения comboxbox но всегда ничего не получил:Databinding с comboxBox в Silverlight

EntityQuery<Tests> testQ = myDomainContext.GetTestQuery().Where(t => t == 5); 
LoadOperation<Tests> loadOp = myDomainContext.Load(testQ) 
comboxBoxTest.ItemSource = loadOp.Entities.Select(t => t.Name).Distinct().ToList(); 

Может кто-нибудь сказать мне, что здесь не так?

ответ

1

Возможно, вы не загрузите объекты. Попробуйте

EntityQuery<Tests> testQ = myDomainContext.GetTestQuery().Where(t => t == 5); 
LoadOperation<Tests> loadOp = myDomainContext.Load(testQ); 
loadOp.Completed += (o, e) => 
    { 
     comboxBoxTest.ItemSource = loadOp.Entities.Select(t => t.Name).Distinct().ToList(); 
    }; 

Или

myDomainContext.Load(testQ, new Action<LoadOperation<Tests>>(result => 
    { 
     comboxBoxTest.ItemSource = result.Entities.Select(t => t.Name).Distinct().ToList(); 
    }), null); 
1

Как вы знаете, в основном, все операции в RIA являются асинхронными. И вы должны знать об этом при выполнении запросов.
Вы должны использовать методы обратного вызова (ответ @ Zabavsky имеет хорошие) по таким причинам. Также я немного рекомендую вам использовать MVVM шаблон вместо обмена сообщениями. Это сделает ваш код и логикой очиститель.

+0

Спасибо, ребята. В любом случае, не много опыта работы с Silverlight. Никогда не использовался MVVM. Эта вещь - просто быстрое и грязное исправление, и почти невозможно закончить больше. Еще раз спасибо! – NewDTinStackoverflow

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