Silverlight/XAML – Learning by Coding
1: <?xml version="1.0" encoding="UTF-8"?>
2: <!-- coded by Thomas Meinike 08/08 -->
3: <UserControl x:Class="sl2_linq_readxml_2.Page"
4: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
5: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6: xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
7: Width="800" Height="600">
8:
9: <Canvas Loaded="HoleDaten">
10:
11: <TextBlock Canvas.Left="30" Canvas.Top="30" FontSize="18" Foreground="#00C"
12: Text="XML-Daten mit LINQ in DataGrid einlesen 2 (XML extern über HTTP)"/>
13:
14: <data:DataGrid Canvas.Left="30" Canvas.Top="70" x:Name="dgrid"
15: AutoGenerateColumns="False" IsReadOnly="True" CanUserResizeColumns="False"
16: HorizontalContentAlignment="Center" RowHeight="25" RowBackground="#FFF" FontSize="16"
17: GridLinesVisibility="All" HeadersVisibility="Column">
18:
19: <data:DataGrid.Columns>
20: <data:DataGridTextColumn Header="Technologie" Binding="{Binding t}" FontSize="14"/>
21: <data:DataGridTextColumn Header="Bezeichnung" Binding="{Binding b}" FontSize="14"/>
22: <data:DataGridTextColumn Header="Herausgeber" Binding="{Binding h}" FontSize="14"/>
23: <data:DataGridTextColumn Header="Jahr" Binding="{Binding j}" FontSize="14"/>
24: </data:DataGrid.Columns>
25:
26: </data:DataGrid>
27:
28: <TextBlock Canvas.Left="30" Canvas.Top="380" x:Name="ausgabe" Text=""/>
29:
30: </Canvas>
31:
32:
33: <!-- // zusätzlich verwendeter VB.NET-Code in Page.xaml.vb:
34:
35: Imports System.Net
36: Imports System.Xml.Linq
37:
38: Partial Public Class Page
39: Inherits UserControl
40:
41: Public Class Data
42: Private _t As String 'Technologie
43: Private _b As String 'Bezeichnung
44: Private _h As String 'Herausgeber
45: Private _j As Integer 'Jahr
46:
47: Property t() As String
48: Get
49: Return _t
50: End Get
51: Set(ByVal value As String)
52: _t = value
53: End Set
54: End Property
55:
56: Property b() As String
57: Get
58: Return _b
59: End Get
60: Set(ByVal value As String)
61: _b = value
62: End Set
63: End Property
64:
65: Property h() As String
66: Get
67: Return _h
68: End Get
69: Set(ByVal value As String)
70: _h = value
71: End Set
72: End Property
73:
74: Property j() As Integer
75: Get
76: Return _j
77: End Get
78: Set(ByVal value As Integer)
79: _j = value
80: End Set
81: End Property
82:
83: End Class
84:
85: Public Sub New()
86: InitializeComponent()
87: End Sub
88:
89: Private Sub HoleDaten(ByVal sender As Object, ByVal e As RoutedEventArgs)
90: Dim wclient As New WebClient
91: AddHandler wclient.DownloadStringCompleted, AddressOf DownloadStringCompleted
92:
93: Dim address As Uri = New Uri("../media/technologien.xml", UriKind.Relative)
94: wclient.DownloadStringAsync(address)
95: End Sub
96:
97: Private Sub DownloadStringCompleted(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
98: If e.Error Is Nothing Then
99:
100: Dim xmldoc = XElement.Parse(e.Result)
101: Dim Source As List(Of Data) = New List(Of Data)
102:
103: For Each technologie In xmldoc.Descendants("technologie")
104: Source.Add(New Data() With _
105: {.t = technologie.Element("kurzbezeichnung"), _
106: .b = technologie.Element("bezeichnung"), _
107: .h = technologie.Element("herausgeber"), _
108: .j = technologie.Element("herausgeber").Attribute("jahr")})
109: Next
110:
111: dgrid.ItemsSource = Source
112:
113: Else
114: ausgabe.Text = e.Error.Message
115: End If
116: End Sub
117:
118: End Class
119:
120: -->
121:
122:
123: <!-- // zusätzlich verwendeter XML-Code in technologien.xml:
124:
125: <?xml version="1.0" encoding="UTF-8"?>
126: <technologien>
127: <technologie>
128: <kurzbezeichnung>DocBook</kurzbezeichnung>
129: <bezeichnung>DocBook</bezeichnung>
130: <herausgeber jahr="1998">OASIS</herausgeber>
131: </technologie>
132: <technologie>
133: <kurzbezeichnung>RSS</kurzbezeichnung>
134: <bezeichnung>Really Simple Syndication</bezeichnung>
135: <herausgeber jahr="1999">UserLand Software</herausgeber>
136: </technologie>
137: <technologie>
138: <kurzbezeichnung>XSLT</kurzbezeichnung>
139: <bezeichnung>Extensible Stylesheet Language Transformations</bezeichnung>
140: <herausgeber jahr="1999">W3C</herausgeber>
141: </technologie>
142: <technologie>
143: <kurzbezeichnung>XHTML</kurzbezeichnung>
144: <bezeichnung>Extensible Hypertext Markup Language</bezeichnung>
145: <herausgeber jahr="2000">W3C</herausgeber>
146: </technologie>
147: <technologie>
148: <kurzbezeichnung>SVG</kurzbezeichnung>
149: <bezeichnung>Scalable Vector Graphics</bezeichnung>
150: <herausgeber jahr="2001">W3C</herausgeber>
151: </technologie>
152: <technologie>
153: <kurzbezeichnung>MathML</kurzbezeichnung>
154: <bezeichnung>Mathematical Markup Language</bezeichnung>
155: <herausgeber jahr="2001">W3C</herausgeber>
156: </technologie>
157: <technologie>
158: <kurzbezeichnung>X3D</kurzbezeichnung>
159: <bezeichnung>Extensible 3D</bezeichnung>
160: <herausgeber jahr="2004">ISO</herausgeber>
161: </technologie>
162: <technologie>
163: <kurzbezeichnung>OpenDocument</kurzbezeichnung>
164: <bezeichnung>Open Document Format for Office Applications</bezeichnung>
165: <herausgeber jahr="2005">ISO</herausgeber>
166: </technologie>
167: <technologie>
168: <kurzbezeichnung>DITA</kurzbezeichnung>
169: <bezeichnung>Darwin Information Typing Architecture</bezeichnung>
170: <herausgeber jahr="2005">OASIS</herausgeber>
171: </technologie>
172: <technologie>
173: <kurzbezeichnung>OOXML</kurzbezeichnung>
174: <bezeichnung>Office Open XML</bezeichnung>
175: <herausgeber jahr="2006">ECMA [ISO 2008]</herausgeber>
176: </technologie>
177: </technologien>
178:
179: -->
180:
181: </UserControl>
[zum Anfang]