Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben az útmutatóban egy olyan WPF-alkalmazást fog létrehozni, amely adatkötött vezérlőket tartalmaz. A vezérlők olyan ügyfélrekordokhoz vannak kötve, amelyek egy WCF Data Service-ben vannak beágyazva. Olyan gombokat is hozzáad, amelyekkel az ügyfelek megtekinthetik és frissíthetik a rekordokat.
Ez az útmutató a következő feladatokat mutatja be:
Az AdventureWorksLT mintaadatbázis adataiból létrehozott entitásadatmodell létrehozása.
Olyan WCF-adatszolgáltatás létrehozása, amely egy WPF-alkalmazás számára teszi elérhetővé az entitásadat-modellben lévő adatokat.
Adathoz kötött vezérlők létrehozása az Adatforrások ablak elemeinek a WPF-tervezőbe húzásával.
Olyan gombok létrehozása, amelyek előre- és hátrafelé navigálnak az ügyfélrekordokon.
Olyan gomb létrehozása, amely a vezérlőkben lévő adatok módosításait menti a WCF Data Service-be és az alapul szolgáló adatforrásba.
Megjegyzés:
A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.
Előfeltételek
Az útmutató elvégzéséhez a következő összetevőkre van szüksége:
Visual Studio
Hozzáférés az SQL Server vagy az SQL Server Express futó példányához, amelyhez csatolva van az AdventureWorksLT mintaadatbázis. Az adatbázis letöltéséhez tekintse meg az AdventureWorks mintaadatbázisait
Az alábbi fogalmak előzetes ismerete szintén hasznos, de nem szükséges az útmutató elvégzéséhez:
Adatmodellek a WCF Data Servicesben.
Entitásadat-modellek és a ADO.NET entitás-keretrendszer. További információ: Entity Framework – áttekintés.
WPF-adatkötés. További információ: Adatkötés áttekintése.
A szolgáltatásprojekt létrehozása
Ezt az útmutatót egy C# vagy Visual Basic ASP.NET webalkalmazás-projekt létrehozásával kezdheti el. Nevezze el az AdventureWorksService projektet.
A Megoldáskezelőben kattintson a jobb gombbal a Default.aspx , és válassza a Törlés parancsot. Ez a fájl nem szükséges az útmutatóhoz.
Entitásadat-modell létrehozása a szolgáltatáshoz
Ha egy WCF-adatszolgáltatás használatával szeretne adatokat elérhetővé tenni egy alkalmazás számára, meg kell határoznia egy adatmodellt a szolgáltatáshoz. A WCF Data Service kétféle adatmodellt támogat: entitás adatmodelleket és egyéni adatmodelleket, amelyek az interfészt megvalósító IQueryable<T> közös nyelvi futtatókörnyezeti (CLR-) objektumok használatával vannak definiálva. Ebben az útmutatóban egy entitásadat-modellt hoz létre az adatmodellhez.
A Project menüben kattintson az Új elem hozzáadásaopcióra.
A Telepített sablonok listában kattintson az Adatok elemre, majd válassza ki az ADO.NET Entitásadatmodell projektelemet.
Módosítsa a nevet a következőre
AdventureWorksModel.edmx, és kattintson a Hozzáadás gombra.Megnyílik az Entitásadatmodell varázsló.
A Modelltartalom kiválasztása lapon kattintson a Létrehozás adatbázisból elemre, majd a Tovább gombra.
Az Adatkapcsolat kiválasztása lapon válassza az alábbi lehetőségek egyikét:
Ha az AdventureWorksLT mintaadatbázishoz adatkapcsolat érhető el a legördülő listában, jelölje ki.
Kattintson az Új kapcsolat elemre, és hozzon létre egy kapcsolatot az AdventureWorksLT-adatbázissal.
Az Adatkapcsolat kiválasztása lapon győződjön meg arról, hogy az App.Configban az entitáskapcsolat mentése beállítás be van jelölve, majd válassza a Tovább gombot.
Az Adatbázis-objektumok kiválasztása lapon bontsa ki a Táblák elemet, majd válassza a SalesOrderHeader táblát.
Kattintson a Finish (Befejezés) gombra.
A szolgáltatás létrehozása
Hozzon létre egy WCF-adatszolgáltatást, amellyel az entitásadat-modellben lévő adatokat közzéteheti egy WPF-alkalmazás számára:
A Projekt menüben válassza az Új elem hozzáadása lehetőséget.
A Telepített sablonok listában kattintson a Web gombra, majd válassza ki a WCF Data Service projektelemet.
Írja be
AdventureWorksService.svca Név mezőbe, és kattintson a Hozzáadás gombra.A Visual Studio hozzáadja a
AdventureWorksService.svc-t a projekthez.
A szolgáltatás konfigurálása
A szolgáltatást úgy kell konfigurálnia, hogy a létrehozott entitásadat-modellen működjön:
A kódfájlban
AdventureWorks.svccserélje le az AdventureWorksService osztály deklarációját a következő kódra.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); } }Ez a kód frissíti az AdventureWorksService osztályt, hogy egy olyan DataService<T> osztályból származzon, amely az entitásadat-modell
AdventureWorksLTEntitiesobjektumkörnyezeti osztályán működik. Emellett frissíti aInitializeServicemetódust, hogy a szolgáltatás ügyfelei teljes olvasási/írási hozzáférést engedélyezzenek azSalesOrderHeaderentitáshoz.Hozza létre a projektet, és ellenőrizze, hogy hiba nélkül épül-e fel.
A WPF-ügyfélalkalmazás létrehozása
A WCF Data Service adatainak megjelenítéséhez hozzon létre egy új WPF-alkalmazást a szolgáltatáson alapuló adatforrással. Az útmutató későbbi részében adatkötésű vezérlőket fog hozzáadni az alkalmazáshoz.
A Megoldáskezelőben kattintson a jobb gombbal a megoldás csomópontjára, kattintson a Hozzáadás parancsra, és válassza az Új projekt lehetőséget.
Az Új projekt párbeszédpanelen bontsa ki a Visual C# vagy a Visual Basic elemet, majd válassza a Windowst.
Válassza ki a WPF-alkalmazás projektsablont.
Írja be
AdventureWorksSalesEditora Név mezőbe, és kattintson az OK gombra.A Visual Studio hozzáadja a
AdventureWorksSalesEditorprojektet a megoldáshoz.Az Adatok menüben kattintson az Adatforrások megjelenítése elemre.
Megnyílik az Adatforrások ablak.
Az Adatforrások ablakban kattintson az Új adatforrás hozzáadásaelemre.
Megnyílik az Adatforrás konfigurálása varázsló.
A varázsló Adatforrástípus kiválasztása lapján válassza a Szolgáltatás lehetőséget, majd a Tovább gombot.
A Szolgáltatáshivatkozás hozzáadása párbeszédpanelen kattintson a Felfedezés gombra.
A Visual Studio megkeresi az aktuális megoldást az elérhető szolgáltatások között, és hozzáadja
AdventureWorksService.svcaz elérhető szolgáltatások listájához a Szolgáltatások mezőben.A Névtér mezőbe írja be az AdventureWorksService nevet.
A Szolgáltatások mezőben kattintson az AdventureWorksService.svc elemre, majd válassza az OK gombot.
A Visual Studio letölti a szolgáltatásinformációkat, majd visszatér az Adatforrás konfigurálása varázslóhoz.
A Szolgáltatás hozzáadása referenciája lapon kattintson a Befejezés gombra.
A Visual Studio olyan csomópontokat ad hozzá, amelyek a szolgáltatás által visszaadott adatokat képviselik az Adatforrások ablakban.
A felhasználói felület meghatározása
Adjon hozzá több gombot az ablakhoz a WPF-tervező XAML-jének módosításával. Az útmutató későbbi részében olyan kódot fog hozzáadni, amely lehetővé teszi a felhasználók számára az értékesítési rekordok megtekintését és frissítését ezen gombok használatával.
A Megoldáskezelőben kattintson duplán a MainWindow.xaml elemre.
Az ablak megnyílik a WPF-tervezőben.
A tervező XAML nézetében adja hozzá a következő kódot a
<Grid>címkék közé:<Grid.RowDefinitions> <RowDefinition Height="75" /> <RowDefinition Height="525" /> </Grid.RowDefinitions> <Button HorizontalAlignment="Left" Margin="22,20,0,24" Name="backButton" Width="75"><</Button> <Button HorizontalAlignment="Left" Margin="116,20,0,24" Name="nextButton" Width="75">></Button> <Button HorizontalAlignment="Right" Margin="0,21,46,24" Name="saveButton" Width="110">Save changes</Button>Készítse el a projektet.
Az adathoz kötött vezérlők létrehozása
Az ügyfélrekordokat megjelenítő vezérlők létrehozásához húzza a csomópontot az SalesOrderHeadersAdatforrások ablakból a tervezőbe.
Az Adatforrások ablakban kattintson a SalesOrderHeaders csomópont legördülő listájának menüjére, és válassza a Részletek lehetőséget.
Bontsa ki a SalesOrderHeaders csomópontot.
Ebben a példában egyes mezők nem jelennek meg, ezért kattintson a legördülő lista menüre a következő csomópontok mellett, és válassza a Nincs lehetőséget:
CreditCardApprovalCode
ModifiedDate
OnlineOrderFlag
RevisionNumber
rowguid
Ez a művelet megakadályozza, hogy a Visual Studio a következő lépésben adathoz kötött vezérlőket hozzon létre ezekhez a csomópontokhoz. Ehhez az útmutatóhoz tegyük fel, hogy a végfelhasználónak nem kell látnia ezeket az adatokat.
Az Adatforrások ablakban húzza a SalesOrderHeaders csomópontot a gombokat tartalmazó sor alatti rácssorra.
A Visual Studio létrehoz egy XAML-t és egy olyan kódot, amely olyan vezérlőket hoz létre, amelyek a Termék táblában lévő adatokhoz vannak kötve. A létrehozott XAML-ről és kódról további információt a WPF-vezérlők kötése a Visual Studióban lévő adatokhoz című témakörben talál.
A tervezőben kattintson az Ügyfélazonosító címke melletti szövegdobozra.
A Tulajdonságok ablakban jelölje be az IsReadOnly tulajdonság melletti jelölőnégyzetet.
Állítsa be az IsReadOnly tulajdonságot az alábbi szövegmezők mindegyikéhez:
Beszerzési rendelés száma
Értékesítési rendelés azonosítója
Értékesítési rendelés száma
Adatok betöltése a szolgáltatásból
A szolgáltatás proxy objektum használatával betölthet értékesítési adatokat a szerverről. Ezután rendelje hozzá a visszaadott adatokat a WPF ablak adatforrásához CollectionViewSource .
A tervezőben az
Window_Loadedeseménykezelő létrehozásához kattintson duplán a következő szövegre: MainWindow.Cserélje le az eseménykezelőt a következő kódra. Győződjön meg arról, hogy a
localhostkódban szereplő címet a fejlesztői számítógépen található helyi gazdagépcímre cseréli.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("http://localhost:45899/AdventureWorksService.svc")); salesQuery = dataServiceClient.SalesOrderHeaders; ordersViewSource = ((CollectionViewSource)(this.FindResource("salesOrderHeadersViewSource"))); ordersViewSource.Source = salesQuery.Execute(); ordersViewSource.View.MoveCurrentToFirst(); }
Navigálás az értékesítési rekordok között
Írjon be egy kódot, amely lehetővé teszi a felhasználók számára az értékesítési rekordok görgetését a < és > gombok használatával.
A tervezőben kattintson duplán az < ablakfelületen található gombra.
A Visual Studio megnyitja a kód mögötti fájlt, és létrehoz egy új
backButton_Clickeseménykezelőt az Click eseményhez.Adja hozzá a következő kódot a létrehozott
backButton_Clickeseménykezelőhöz:Térjen vissza a tervezőhöz, és kattintson duplán a > gombra.
A Visual Studio megnyitja a kód mögötti fájlt, és létrehoz egy új
nextButton_Clickeseménykezelőt az Click eseményhez.Adja hozzá a következő kódot a létrehozott
nextButton_Clickeseménykezelőhöz:
Értékesítési rekordok módosításainak mentése
Olyan kód hozzáadása, amely lehetővé teszi a felhasználók számára az értékesítési rekordok módosításainak megtekintését és mentését a Módosítások mentése gombbal:
A tervezőben kattintson duplán a Módosítások mentése gombra.
A Visual Studio megnyitja a kód mögötti fájlt, és létrehoz egy új
saveButton_Clickeseménykezelőt az Click eseményhez.Adja hozzá a következő kódot az
saveButton_Clickeseménykezelőhöz.
Az alkalmazás tesztelése
Hozza létre és futtassa az alkalmazást az ügyfélrekordok megtekintésének és frissítésének ellenőrzéséhez:
A Build menüben kattintson a Megoldás létrehozása elemre. Ellenőrizze, hogy a megoldás hiba nélkül épül-e fel.
Nyomja le a CtrlF5 billentyűkombinációt+.
A Visual Studio hibakeresés nélkül elindítja az AdventureWorksService projektet.
A Megoldáskezelőben kattintson a jobb gombbal az AdventureWorksSalesEditor projektre.
Kattintson a jobb gombbal a menüre (helyi menü) a Hibakeresés csoportban kattintson az Új példány indítása parancsra.
Az alkalmazás fut. Ellenőrizze a következőket:
A szövegmezők az első értékesítési rekord különböző adatmezőit jelenítik meg, amelyek értékesítési rendelésazonosítója 71774.
Az egyéb értékesítési rekordok között úgy navigálhat, hogy a > vagy a < gombra kattint.
Az egyik értékesítési rekordba írjon be egy szöveget a Megjegyzés mezőbe, majd válassza a Módosítások mentése lehetőséget.
Zárja be az alkalmazást, majd indítsa újra az alkalmazást a Visual Studióból.
Lépjen a módosított értékesítési rekordra, és ellenőrizze, hogy a módosítás megmarad-e az alkalmazás bezárása és újbóli megnyitása után.
Zárja be az alkalmazást.
Következő lépések
Az útmutató elvégzése után a következő kapcsolódó feladatokat hajthatja végre:
Megtudhatja, hogyan kötheti a WPF-vezérlőket más típusú adatforrásokhoz a Visual Studio Adatforrások ablakával. További információ: WPF-vezérlők kötése egy adathalmazhoz.
Megtudhatja, hogyan jelenítheti meg a kapcsolódó adatokat (azaz a szülő-gyermek kapcsolatokban lévő adatokat) a Visual Studióban az Adatforrások ablakban a WPF-vezérlőkben. További információ : Útmutató: Kapcsolódó adatok megjelenítése EGY WPF-alkalmazásban.