مشاركة عبر


الإرشادات التفصيلية: عناصر تحكم WPF ربط إلى الخدمة WCF بيانات

في هذه معاينة، يمكنك إنشاء أحد WPF تطبيق الذي يحتوي على بيانات المرتبطة عناصر التحكم. ترتبط عناصر التحكم إلى سجلات العميل يتم تغليف في خدمة بيانات WCF. كما سيتم إضافة butإلىns يمكن استخدام تلك cusإلىmers إلى عرض السجلات وتحديثها.

توضح هذه الإرشادات التفصيلية المهام التالية:

  • إنشاء "طرازات البيانات وحدة" هو التي تم إنشاؤها من البيانات في قاعدة بيانات نموذج AdventureWorksLT.

  • إنشاء خدمة بيانات WCFالتي تعرض البيانات في "نموذج بيانات وحدة" إلى التطبيقات WPF.

  • قم بإنشاء التعيين من عناصر تحكم حدود بيانات بواسطة سحب عناصر من الإطار بيانات المصادر إلى مصمم WPF.

  • إنشاء الأزرار التنقل إعادة توجيه مكالمة و مع الإصدارات السابقة من خلال سجلات العميل.

  • إنشاء زر يقوم بحفظ التغييرات على البيانات في عناصر التحكم إلى خدمة بيانات WCFو الأساسي البيانات المصدر.

    ملاحظة

    قد يعرض جهاز الكمبيوتر الخاص بك أسماء أو مواقع مختلفة لبعض عناصر واجهة مستخدم Visual Studio في الإرشادات التالية. يحدد كل من إصدار Visual Studio لديك والإعدادات المستخدمة هذه العناصر. لمزيد من المعلومات، راجع العمل مع إعدادات.

المتطلبات الأساسية

تحتاج إلى المكونات التالية لاستكمال هذه الإرشادات التفصيلية:

  • Visual Studio 2010.

  • الوصول إلى مثيل SQL الخادم أو SQL الخادم Express الذي يحتوي على قاعدة بيانات نموذج AdventureWorksLT مرفقة به قيد تشغيل. يمكنك تحميل قاعدة البيانات AdventureWorksLT من موقع ويب CodePlex.

معرفة سابقة بالمفاهيم التالية هو مفيدة أيضا، ولكن لا المطلوبة لاستكمال معاينة:

قم بإنشاء مشروع الخدمة

يبدأ هذه معاينة بإنشاء مشروع ل خدمة بيانات WCF.

لإنشاء مشروع الخدمة

  1. ابدأ ‏‫Visual Studio.

  2. من القائمة File (ملف)، أشر إلى New (جديد)، ثم انقر فوق Project (مشروع).

  3. $ $ $ $ المتوقعة و Visual C#‎ أو Visual أساسى ، و ثم تحديد من ويب.

  4. تحديد قالب مشروع تطبيق ويب لـ ASP.NET.

  5. في المربع الاسم ، اكتب من AdventureWorksService و انقر فوق ‏‏موافق .

    ‏‫Visual Studio بإنشاء مشروع AdventureWorksService.

  6. من مستكشف الحل، انقر نقراً مزدوجاً فوق الافتراضي.aspx وحدد يحذف . هذا الملف ليس من الضروري في هذه معاينة.

قم بإنشاء طرازات بيانات وحدة الخدمة

لعرض البيانات إلى تطبيق موجود بواسطة استخدام خدمة بيانات WCF، يجب عليك تعريف نموذج بيانات للخدمة. خدمة بيانات WCFيدعم نوعين من نماذج بيانات: نماذج بيانات وحدة و نماذج بيانات المخصصة التي تم تعريفها باستخدام الكائنات وقت التشغيل (CLR) اللغة عام التي تقوم بتنفيذ IQueryable<T>الواجهة. في هذه معاينة، إنشاء "طرازات البيانات وحدة" لنموذج البيانات.

إلى إنشاء "طرازات بيانات وحدة"

  1. في مشروع قائمة ، انقر فوق إضافة عنصر جديد .

  2. تحديد مشروع طراز بيانات وحدة ADO.NET العنصر.

  3. قم بتغيير الاسم إلى AdventureWorksModel.edmx، انقر فوق إضافة.

    يتم فتح معالج ‏‫نموذج بيانات وحدة .

  4. الصفحة اختيار محتويات نموذج ، انقر فوق الإنشاء من قاعدة بيانات، و انقر فوق التالي.

  5. في الصفحة اختيار اتصال بيانات الخاص بك، تحديد واحد الخيارات التالية:

    • إذا كان هناك اتصال بيانات إلى قاعدة بيانات نموذج AdventureWorksLT هو متوفرة في المنسدلة المنسدلة lهوt، حدده.

      -أو-

    • انقر فوق من اتصال جديد وقم بإنشاء اتصال بقاعدة البيانات AdventureWorksLT.

  6. في الصفحة اختيار اتصال البيانات الخاص بك ، تأكد من أن حفظ إعدادات الاتصال وحدة في App.Config خيار هو محددة ومن ثم انقر فوق التالي.

  7. في الصفحة اختيار الكائنات قاعدة بيانات الخاصة بك ، توسيع جداول ، وقم بتحديد الجدول SalesOrderHeader.

  8. انقر فوق Finish.

إنشاء الخدمة

قم بإنشاء خدمة بيانات WCFإلى كشف البيانات في "نموذج بيانات وحدة" إلى التطبيقات WPF.

إلى إنشاء الخدمة

  1. في مشروع القائمة، انقر فوق إضافة عنصر جديد .

  2. تحديد عنصر مشروع WCF الخدمة بيانات.

  3. في الاسم صندوق واكتب من AdventureWorksService.svc وانقر فوق إضافة.

    إضافة ‏‫Visual Studio من AdventureWorksService.svc إلى مشروع.

تكوين الخدمة

يجب تكوين الخدمة إلى تعمل تشغيل "طراز بيانات الوحدات" التي قمت بإنشائها.

إلى تكوين الخدمة

  1. في ‏‏رمز الملف AdventureWorks.svc ، استبدل AdventureWorksServiceإعلان فئة باستخدام تعليمات برمجية التالية.

    Public Class AdventureWorksService
        Inherits DataService(Of AdventureWorksLTEntities)
    
        ' This method is called only once to initialize service-wide policies.
        Public Shared Sub InitializeService(ByVal config As IDataServiceConfiguration)
            config.SetEntitySetAccessRule("SalesOrderHeaders", EntitySetRights.All)
            config.UseVerboseErrors = True
        End Sub
    End Class
    
    public class AdventureWorksService : DataService<AdventureWorksLTEntities>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(IDataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("SalesOrderHeaders", EntitySetRights.All);
        }
    }
    

    هذه التعليمة البرمجية تحديثات AdventureWorksServiceالفئة حيث أنها مشتقة من DataService<T>التي تعمل تشغيل AdventureWorksLTEntitiesفئة سياق كائن في نموذج "بيانات وحدة". يقوم أيضا بتحديث InitializeServiceالأسلوب للسماح لعملاء الخدمة الوصول الكامل القراءه/الكتابه إلى SalesOrderHeaderوحدة.

    للحصول على مزيد من المعلومات حول الفئات سياق كائن في إطار عمل لوحدة ADO.NET، راجع Object Services Overview (Entity Framework).

  2. قم بإنشاء مشروع، و التحقق من أن ينشئ بدون أخطاء.

إنشاء تطبيق العميل WPF

إلى عرض البيانات من خدمة بيانات WCF، قم بإنشاء تطبيق جديد WPF مع مصدر بيانات يعتمد تشغيل الخدمة. لاحقاً في هذه معاينة، سوف إضافة عناصر تحكم حدود بيانات للتطبيق.

إلى إنشاء تطبيق العميل WPF

  1. في من مستكشف الحل، انقر نقراً مزدوجاً فوق العقدة الحل، انقر فوق إضافة، و حدد مشروع جديد.

    ملاحظة

    في مشاريع Visual Basic عقدة الحل تظهر في مستكشف الحلول فقط عند تحديد إظهار الحل في خانة الفحص عام، مشاريع وحلول، مربع حوار الخيارات.

  2. مشروع جديد الحوار، $ $ $ $ المتوقعة و Visual C#‎ أو Visual أساسى ، و ثم حدد من Windows.

  3. تحديد قالب مشروع WPF تطبيق.

  4. في الاسم صندوق واكتب من AdventureWorksSalesEditor وانقر فوق ‏‏موافق .

    إضافة ‏‫Visual Studio مشروع AdventureWorksSalesEditor إلى الحل. الافتراضي Window1فتح نافذة تلقائياً في المصمم.

  5. في قائمة بيانات ، انقر فوقإظهار مصادر البيانات.

    يفتح الإطار المصادر بيانات.

  6. في نافذة مصادر البيانات ، انقر فوقإضافة مصدر بيانات جديد.

    يتم فتح معالج تكوين مصدر البيانات.

  7. في الصفحة اختيار المصدر نوع بيانات من معالج، تحديد الخدمة وثم انقر فوق التالي.

  8. في صندوق الحوار إضافة مرجع الخدمة ، انقر فوق من اكتشاف.

    البحث عن الحلول الحالي للخدمات متوفر ‏‫Visual Studio، ويضيف من AdventureWorksService.svc إلى قائمة الخدمات متوفر في الخدمات صندوق.

  9. في مساحة الاسم صندوق، اكتب من AdventureWorksService.

  10. في المربع الخدمات ، انقر فوق من AdventureWorksService.svc و ثم انقر فوق ‏‏موافق .

    قم بتحميل معلومات الخدمة ‏‫Visual Studio وثم يعود إلى معالج تكوين مصدر بيانات.

  11. في الصفحة إضافة مرجع الخدمة ، انقر فوق إنهاء.

    يضيف ‏‫Visual Studio العقد التي تمثل البيانات التي يتم إرجاعها بواسطة الخدمة إلى المصادر البيانات نافذة.

تعريف واجهة مستخدم من نافذة المخطط التفصيلي

قم بإضافة عدة الأزرار للإطار بواسطة تعديل XAML في ‏‫مصمم WPF. لاحقاً في هذه معاينة، تتم إضافة تعليمات برمجية الذي يسمح للمستخدمين بعرض السجلات وتحديثها المبيعات باستخدام هذه الأزرار.

إلى إنشاء ‏‏تخطيط نافذة

  1. في مستكشف الحل، مزدوج-انقر فوق MainWindow.xaml.

    نافذة فتح في ‏‫مصمم WPF.

  2. في XAMLعرض للمصمم، إضافة التعليمة البرمجية التالية بين <Grid>علامات:

    <Grid.RowDefinitions>
        <RowDefinition Height="75" />
        <RowDefinition Height="525" />
    </Grid.RowDefinitions>
    <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75">&lt;</Button>
    <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">&gt;</Button>
    <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>
    
  3. إنشاء المشروع.

إنشاء عناصر التحكم المرتبطة بالبيانات

قم بإنشاء عناصر التحكم التي تعرض سجلات العميل بسحب العقدة SalesOrderHeaders من الإطار المصادر البيانات إلى المصمم.

إلى إنشاء عناصر تحكم حدود بيانات

  1. في الإطار المصادر بيانات ، انقر فوق قائمة المنسدلة للعقدة SalesOrderHeaders ثم حدد تفاصيل .

  2. توسيع من SalesOrderHeaders عقدة.

  3. لهذا المثال لن تكون بعض حقول المعروضة في هذه الحالة انقر فوق قائمة المنسدلة بعد ذلك إلى العقد التالية وحدد بلا :

    • CreditCardApprovalCode

    • ModifiedDate

    • OnlineOrderFlag

    • RevisionNumber

    • rowguid

    يمنع هذا إجراء ‏‫Visual Studio من إنشاء عناصر تحكم حدود بيانات لهذه العقد الموجودة التالي الخطوة. لترتيب هو معاينة، فإنه هو افتراض أن مستخدم لا تحتاج إلى مشاهدة th هو بيانات.

  4. من الإطار المصادر بيانات ، اسحب العقدة SalesOrderHeaders إلى صف الشبكة ضمن الصف الذي يحتوي على butإلىns.

    ينشئ ‏‫Visual Studio XAML و تعليمات برمجية الذي يقوم بإنشاء التعيين من عناصر التحكم المرتبطة بالبيانات الموجودة في الجدول منتج. لمزيد من المعلومات حول XAML المنشأ و تعليمات برمجية، راجع قم بربط عناصر التحكم WPF إلى بيانات في ‏‫Visual Studio.

  5. في المصمم، انقر فوق صندوق نص التالي إلى التسمية Cusإلىmer المعرف.

  6. في الإطار خصائص ، تحديد خانة اختيار بجانب إلى IsReadOnly خاصية.

  7. التعيين IsReadOnly خاصية لكل من مربعات النصوص التالية:

    • قم بشراء ترتيب رقم

    • المعرف ترتيب المبيعات

    • رقم ترتيب المبيعات

تحميل بيانات من الخدمة

استخدام كائن وكيل خدمة تحميل بيانات المبيعات من الخدمة، و ثم تقوم بتعيين البيانات التي تم إرجاعها إلى مصدر البيانات ل "CollectionViewSourceفي" نافذة WPF.

إلى تحميل بيانات من الالخدمة

  1. في المصمم، انقر نقراً مزدوجاً فوق نص الذي يقرأ: MainWindow إلى إنشاء Window_Loadedمعالج الحدث.

  2. قم باستبدال معالج الأحداث بما يلي تعليمات برمجية. تأكد من قيامك باستبدال العنوان localhost في هذا تعليمات برمجية بعنوان مضيف المحلي تشغيل الكمبيوتر التطوير.

    [Visual Basic]

    Private DataServiceClient As AdventureWorksService.AdventureWorksLTEntities
    Private SalesQuery As System.Data.Services.Client.DataServiceQuery(Of AdventureWorksService.SalesOrderHeader)
    Private OrdersViewSource As CollectionViewSource
    
    Private Sub Window_Loaded(ByVal Sender As Object, ByVal e As RoutedEventArgs) Handles MyBase.Loaded
    
        ' TODO: Modify the port number in the following URI as required.
        DataServiceClient = New AdventureWorksService.AdventureWorksLTEntities( _
        New Uri("https://localhost:9085/AdventureWorksService.svc"))
        SalesQuery = DataServiceClient.SalesOrderHeaders
    
        OrdersViewSource = CType(Me.FindResource("SalesOrderHeadersViewSource"), CollectionViewSource)
        OrdersViewSource.Source = SalesQuery.Execute()
        OrdersViewSource.View.MoveCurrentToFirst()
    End Sub
    
    private AdventureWorksService.AdventureWorksLTEntities dataServiceClient;
    private System.Data.Services.Client.DataServiceQuery<AdventureWorksService.SalesOrderHeader> salesQuery;
    private CollectionViewSource ordersViewSource;
    
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        // TODO: Modify the port number in the following URI as required.
        dataServiceClient = new AdventureWorksService.AdventureWorksLTEntities(
            new Uri("https://localhost:22355/AdventureWorksService.svc"));
        salesQuery = dataServiceClient.SalesOrderHeaders;
    
        ordersViewSource = ((CollectionViewSource)(this.FindResource("salesOrderHeadersViewSource")));
        ordersViewSource.Source = salesQuery.Execute();
        ordersViewSource.View.MoveCurrentToFirst();
    }
    

التنقل بين سجلات المبيعات

إضافة تعليمات برمجية التي تتيح للمستخدمين إمكانية مرور خلال السجلات المبيعات باستخدام < و > الأزرار .

إلى تمكين المستخدمين من إلى التنقل بين سجلات مبيعات

  1. في المصمم، انقر نقراً مزدوجاً فوق < زر تشغيل سطح الإطار.

    قم بفتح الملف تعليمات برمجية-الخلف ‏‫Visual Studio وقم بإنشاء جديد backButton_Clickمعالج الأحداث Clickحدث.

  2. قم باستبدال المنشأ backButton_Clickمعالج حدث باستخدام تعليمات برمجية التالية.

    If OrdersViewSource.View.CurrentPosition > 0 Then
        OrdersViewSource.View.MoveCurrentToPrevious()
    End If
    
    if (ordersViewSource.View.CurrentPosition > 0)
        ordersViewSource.View.MoveCurrentToPrevious();
    
  3. الرجوع إلى المصمم، وانقر نقراً مزدوجاً فوق > زر .

    قم بفتح الملف تعليمات برمجية-الخلف ‏‫Visual Studio وقم بإنشاء جديد nextButton_Clickمعالج الأحداث Clickحدث.

  4. قم باستبدال المنشأ nextButton_Clickمعالج حدث باستخدام تعليمات برمجية التالية.

    If OrdersViewSource.View.CurrentPosition < CType(OrdersViewSource.View, CollectionView).Count - 1 Then
        OrdersViewSource.View.MoveCurrentToNext()
    End If
    
    if (ordersViewSource.View.CurrentPosition < ((CollectionView)ordersViewSource.View).Count - 1)
    {
        ordersViewSource.View.MoveCurrentToNext();
    }
    

قم بحفظ التغييرات إلى سجلات المبيعات

قم بإضافة التعليمة البرمجية التي تتيح للمستخدمين لعرض وحفظ التغييرات على السجلات المبيعات باستخدام حفظ التغييرات زر.

لإضافة القدرة على حفظ التغييرات إلى سجلات مبيعات

  1. في المصمم، انقر نقراً مزدوجاً فوق الزر حفظ التغييرات.

    قم بفتح الملف تعليمات برمجية-الخلف ‏‫Visual Studio وقم بإنشاء جديد saveButton_Clickمعالج الأحداث Clickحدث.

  2. قم بإضافة التعليمات البرمجية التالية إلى معالج الحدث saveButton_Click .

    Dim CurrentOrder As AdventureWorksService.SalesOrderHeader = CType(OrdersViewSource.View.CurrentItem, AdventureWorksService.SalesOrderHeader)
    
    DataServiceClient.UpdateObject(CurrentOrder)
    DataServiceClient.SaveChanges()
    
    AdventureWorksService.SalesOrderHeader currentOrder = (AdventureWorksService.SalesOrderHeader)ordersViewSource.View.CurrentItem;
    dataServiceClient.UpdateObject(currentOrder);
    dataServiceClient.SaveChanges();
    

اختبار التطبيق

البناء والتشغيل تطبيق إلى التحقق من أنه يمكنك عرض وتحديث السجلات cusإلىmer.

لإختبار التطبيق

  1. قائمة بنية ، انقر فوق إنشاء الحل. تحقق من بناء الحل بدون أخطاء.

  2. اضغط من زر'Ctrl' + F5.

    تشغيل ‏‫Visual Studio مشروع AdventureWorksService دون تصحيح الأخطاء به.

  3. في مستكشف الحل، يمين-انقر فوق مشروع AdventureWorksSalesEditor.

  4. في قائمة سياق، تحت يصحح: ، انقر فوق يبدأ مثيل جديد .

    تشغيل تطبيق. تحقق من التالي:

    • عرض مربعات نص لحقول مختلفة من بيانات من المبيعات أول سجل، الذي قام ترتيب المبيعات المعرف 71774 .

    • يمكنك النقر فوق > أو < butإلىns إلى التنقل بين السجلات الأخرى المبيعات.

  5. في واحد سجلات مبيعات، اكتب نص في المربع تعليق ، و ثم انقر فوق حفظ التغييرات.

  6. يغلق تطبيق، و قم بتشغيل تطبيق مرة أخرى من برنامج ‏‫Visual Studio.

  7. التنقل إلى المبيعات سجل التي قمت بتغييرها، وتحقق من أن استمرار تغيير بعد إغلاق وإعادة فتحه في تطبيق.

  8. اغلق التطبيق.

الخطوات التالية

بعد إكمال هذه معاينة، يمكنك تنفيذ المهام ذات الصلة التالية:

راجع أيضًا:

المهام

كيفية القيام بما يلي: عناصر تحكم WPF يربط للبيانات في ‏‫Visual Studio

الإرشادات التفصيلية: قم بربط عناصر التحكم WPF إلى طرازات بيانات وحدة

الإرشادات التفصيلية: قم بربط عناصر التحكم WPF إلى فئة البيانات

المبادئ

قم بربط عناصر التحكم WPF إلى بيانات في ‏‫Visual Studio

نظرة عامة حول مصمم WPF

نظرة عامة حول ربط البيانات

موارد أخرى

ADO.NET Data Services Framework Overview

Data Model

Entity Data Model

Introducing the Entity Framework