Сильверлайт и WCF

У меня есть WCF, запрашивающий таблицу, из которой я получаю одну запись, которую я показываю в сетке данных.

Как установить значения столбцов этой одной записи в переменные и сделать эти переменные доступными для остальной части приложения Silverlight?

Что я пытаюсь сделать: заставить WCF запросить таблицу SQL, установить эти результаты в переменные, чтобы диаграмма реагировала на эти переменные.

Пожалуйста помоги!!!!


person user1339386    schedule 06.06.2012    source источник


Ответы (1)


Ваш вызов WCF должен возвращать тип, к которому также привязан ваш текущий DataGrid. Вы можете использовать тот же тип для перехода к диаграмме. Другими словами, вам не нужно считывать значения обратно из DataGrid, у вас уже есть значения, из которых заполняется ваш DataGrid.

person devdigital    schedule 06.06.2012
comment
Мне нужно, чтобы они были в переменных для других вещей, которые я пытаюсь сделать на основе переменных - person user1339386; 06.06.2012
comment
Какой метод WCF вы вызываете? Как вы заполняете свой DataGrid? - person devdigital; 06.06.2012
comment
контекст dsc1 = новый dsc1(); LoadOperation‹My_View› lo = context.Load(context.GetMy_ViewsQuery(0074)); dataGrid1.ItemsSource = lo.Entities; - person user1339386; 06.06.2012
comment
Хорошо, там довольно загадочный код, но у вас есть данные, которые вам нужны, в lo.Entities, так почему бы не использовать ту же переменную для заполнения диаграммы и т. д.? - person devdigital; 06.06.2012
comment
как уже говорилось, диаграмма - это только одна вещь, которую мне нужно заполнить, мне нужны значения в переменных - person user1339386; 06.06.2012
comment
Это переменная. Если вам не нравится эта переменная, измените форму данных так, как вы хотите, в свою собственную переменную, используя, например, LINQ или простой цикл foreach. - person devdigital; 06.06.2012
comment
подождите, я что-то упустил из того, что вы только что сказали. если в таблице есть идентификатор и имя технологии (и другие столбцы), как мне получить идентификатор и имя технологии и установить их для отдельных переменных. пример, пожалуйста - person user1339386; 07.06.2012
comment
оба они будут свойствами объекта в вашей коллекции lo.Entities. lo.Entities будет IEnumerable‹something›, где something — это ваш тип сущности, к которому привязана ваша сетка данных. Таким образом, вы можете сделать foreach(var entity in lo.Entities) { // доступ к entity.ID, entity.TechnologyName здесь и т. д.} - person devdigital; 07.06.2012
comment
ОК, я попробовал следующий код и ничего не получил: List‹getValues› hcpValues ​​= new List‹getValues›(); foreach (var entity in lo.Entities) { // Отдельные элементы strGetHCPosition2 = entity.TechnologyName; tbERROR.Text = strGetHCPosition2; MessageBox.Show(strGetHCPosition2); //создаем список hcpValues.Add(new getValues ​​{ strGetTechName = entity.TechnologyName }); } - person user1339386; 07.06.2012
comment
Этот код не имеет смысла. Попробуйте var list = lo.Entities.ToList(); - person devdigital; 07.06.2012
comment
Я знаю, что мне здесь больно, но я новичок в Silverlight и C#, не могли бы вы написать, как должен выглядеть весь код, начиная с вашего списка var = lo.Entities.ToList(); и дальше - person user1339386; 07.06.2012
comment
Я попробовал это самостоятельно и не получил результатов: var list = lo.Entities.ToList(); foreach (var entity в lo.Entities.ToList()) { strGetTechName = entity.TechnologyName; } MessageBox.Show(Get TechName: + strGetTechName); - person user1339386; 07.06.2012
comment
поигравшись с этим, у меня действительно получилось, спасибо за ваши усилия и время - person user1339386; 07.06.2012