ซิลเวอร์ไลท์ และ WCF

ฉันมี WCF ที่กำลังสืบค้นตาราง จากนั้นฉันได้รับหนึ่งบันทึกที่ฉันแสดงใน DataGrid

ฉันจะตั้งค่าคอลัมน์ของบันทึกหนึ่งเป็นตัวแปรและให้ตัวแปรเหล่านั้นพร้อมใช้งานกับส่วนที่เหลือของแอป 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 = แท้จริงเอนทิตี; - person user1339386; 06.06.2012
comment
โอเค มีโค้ดที่ค่อนข้างคลุมเครือ แต่คุณมีข้อมูลที่คุณต้องการใน lo.Entities แล้วทำไมไม่ใช้ตัวแปรเดียวกันเพื่อเติมแผนภูมิของคุณ ฯลฯ - person devdigital; 06.06.2012
comment
ตามที่ระบุไว้ แผนภูมิเป็นเพียงสิ่งเดียวที่ฉันต้องเติม ฉันต้องการค่าในตัวแปร - person user1339386; 06.06.2012
comment
นั่นคือตัวแปร หากคุณไม่ชอบตัวแปรนั้น ให้จัดรูปแบบข้อมูลใหม่ตามที่คุณต้องการให้เป็นตัวแปรของคุณเอง โดยใช้ LINQ เป็นต้น หรือ foreach loop ที่ตรงไปตรงมา - person devdigital; 06.06.2012
comment
เดี๋ยวก่อน ฉันพลาดอะไรบางอย่างจากสิ่งที่คุณเพิ่งพูดไป หากตารางมี ID และ TechnologyName (และคอลัมน์อื่น ๆ ) ฉันจะรับ ID และ TechnologyName และตั้งค่าเป็นตัวแปรแต่ละตัวได้อย่างไร ตัวอย่างถ้าคุณต้องการ - person user1339386; 07.06.2012
comment
สิ่งเหล่านี้จะเป็นคุณสมบัติของเอนทิตีในคอลเลกชัน lo.Entities ของคุณ lo.Entities จะเป็น IEnumerable‹something> โดยที่บางอย่างเป็นประเภทเอนทิตีของคุณที่เชื่อมโยงกับ DataGrid ดังนั้นคุณจึงสามารถทำ foreach(var enter in lo.Entities) { // access enterity.ID, entert.TechnologyName ที่นี่ ฯลฯ } - person devdigital; 07.06.2012
comment
ตกลง ฉันลองโค้ดด้านล่างนี้แล้ว แต่ไม่มีอะไรเกิดขึ้น: List‹getValues› hcpValues ​​= new List‹getValues›(); foreach (เอนทิตี var ใน lo.Entities) { // แต่ละรายการ strGetHCPosition2 = เอนทิตี.TechnologyName; tbERROR.Text = strGetHCPosition2; MessageBox.Show(strGetHCPosition2); // สร้างรายการ hcpValues.Add (getValues ​​ใหม่ { strGetTechName = เอนทิตี.TechnologyName }); } - person user1339386; 07.06.2012
comment
รหัสนั้นไม่สมเหตุสมผล ลอง var list = lo.Entities.ToList(); - person devdigital; 07.06.2012
comment
ฉันรู้ว่าฉันกำลังลำบากใจ แต่ฉันยังใหม่กับ Silverlight และ C# คุณช่วยเขียนว่าโค้ดทั้งหมดควรมีลักษณะอย่างไร โดยเริ่มจาก var list = lo.Entities.ToList(); และต่อไป - person user1339386; 07.06.2012
comment
ฉันลองสิ่งนี้ด้วยตัวเองและไม่ได้ผลลัพธ์: var list = lo.Entities.ToList(); foreach (เอนทิตี var ใน lo.Entities.ToList()) { strGetTechName = เอนทิตี.TechnologyName; } MessageBox.Show(รับ TechName: + strGetTechName); - person user1339386; 07.06.2012
comment
ลองเล่นกับมันดูสิ ฉันทำมันได้จริง ขอบคุณสำหรับความพยายามและเวลาของคุณ - person user1339386; 07.06.2012