Silverlight/XAML – Learning by Coding

[ sl2_linq_readxml_2.xaml --> Grafik anzeigen ]

  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 ObjectByVal e As RoutedEventArgs)
 90:       Dim wclient As New WebClient
 91:       AddHandler wclient.DownloadStringCompletedAddressOf 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 ObjectByVal 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:          {.technologie.Element("kurzbezeichnung"), _
106:           .technologie.Element("bezeichnung"), _
107:           .technologie.Element("herausgeber"), _
108:           .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]