Master Detail in Silverlight 4 using WCF RIA Service


 

การแสดงข้อมูลมีความสัมพันธ์(relation) หรือคำที่มักจะคุ้นกันคือ MasterDetail สำหรับบน Silverlight 4 สามารถทำได้ง่ายๆ เพียงแค่คลิก – ลาก – วาง คล้ายกับ App. บน Desktop เราจะนำตัวอย่างโปรเจ็กต์จาก บทความ Silverlight 4 Theming มาปรับปรุงใช้งานต่อ

1. .ให้เปิด Model1.edmx เพื่อเพิ่มอ็อบเจ็กต์ Categories โดยคลิกขวาบนโมเดล แล้วทำการเลือกเมนู Update Model from Database..

0

 

2. จะได้หน้าต่าง Update Wizard ให้ทำการเลือก Table Categories เราจะได้โมเดลดังรูป

1 

3. ทำการลบ DomainService1.cs ทิ้ง แล้วทำการสร้างใหม่ คราวนี้ให้เลือก Generate associated class for metadata

2

 

4. ให้เปิดไฟล์ metadata (DomainService1.metadata.cs) แล้วทำการเพิ่มแอตทริบิวต์ (Attribute) [Include] บน บน Entity Collection ของ Products เพื่อบอกให้ RIA Service กวาดข้อมูลของ product ไปด้วยเมื่อเราเลือกข้อมูล category

.
..
...
 internal sealed class CategoriesMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private CategoriesMetadata()
            {
            }

            public int CategoryID;

            public string CategoryName;

            public string Description;

            public byte[] Picture;

            [Include] 
            public EntityCollection<Products> Products;
        }
...
..
.

 

5. จากนั้นไปปรับปรุง DomainService1.cs ในเมธอดการดึงข้อมูลของ category ให้รวมเอารายละเอียด Products ไปด้วย

.
..
...
public IQueryable<Categories> GetCategories()
        {
            return this.ObjectContext.Categories.Include ("Products");
        }
...
..
.

6. ทำการ rebuild solution 1 ครั้งเพื่อปรับปรุง proxy class ฝั่ง Silverlight

7. ทำการเปิดไฟล์ About.xaml จากนั้นคลิกให้แสดง Show Data Source

8. เราจะเห็น DataSource ชื่อ DomainService1 จากทำการขยายจะเห็นมีสองอ็อบเจ็กต์ คือ Categories และ Products

9. ทำการขยายอ็อบเจ็กต์ Categories เราจะเห็นมีอ็อบเจ็กต์ Products ซึ่งเป็น Detail อยู่ภายใน ให้ทำการลากสองอ็อบเจ็กต์ดังกล่าวไปวางบนเพจ About.xaml

3

10. จากนั้นทำการรันเพื่อทดสอบดูข้อมูล แล้วลองคลิกข้อมูลบน category (master) จะเห็นข้อมูล products (detail) ปรับเปลี่ยนตาม

4

เจ๋ง

 

แหล่งข้อมูลดาวน์โหลด
http://cid-7d608959d854cb28.skydrive.live.com/embedicon.aspx/SourcesCode/01-27-2009_Drag-DropDataBindingToSilverlight4_MasterDetail.zip

แหล่งข้อมูลอ้างอิง

ผู้เขียน:
nano_mvp_2009_1

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Silverlight

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: