Moin!
ich möchte in einem WPF-Datagrid Daten (ohne DB-Anbindung) darstellen. Die Formdefinition sieht wie folgt aus:
Den nachfolgenden Code für die Datenbefüllung habe ich im Weg gefunden. In der ersten Spalte soll eine Checkbox sein, damit die Zeilen für nachfolgende Schritte ausgewählt werden können. Deshalb habe ich auch bei der Bestückung den Wert Import hinzugeführt.
Nun habe ich zwei Fragen:
1.) Wie kann ich auf die Checkboxen zugreifen um die Auswahl für alle zu de/aktivieren? (Funktion: SetSelection)
2.) Dann suche ich einen Weg einmal durch alle Zeilen zu laufen und dabei die Spalte 1 für die Zeilen auszulesen, deren Checkbox true ist.
Irgendwie komme ich mit den gefundenen Beispielen im Web nicht klar.
Gruß Jan
ich möchte in einem WPF-Datagrid Daten (ohne DB-Anbindung) darstellen. Die Formdefinition sieht wie folgt aus:
XML-Quellcode
- <Window x:Name="DLG_GSEW_ImportHistorie" x:Class="DLG_GSEW_ImportHistorie"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- mc:Ignorable="d" Title="GSEW Historie importieren" ResizeMode="NoResize" Height="468.651" Width="1000.969" WindowStartupLocation="CenterScreen">
- <Grid Margin="0,0,-17,0" HorizontalAlignment="Left">
- <Label x:Name="lb_Info" Content="wählen Sie, die Einträge übertragen werden sollen." HorizontalAlignment="Left" Height="30" Margin="10,10,0,0" VerticalAlignment="Top" Width="303" RenderTransformOrigin="0.526,1.1"/>
- <Button x:Name="bt_Cancel" Content="Abbruch" HorizontalAlignment="Left" Height="30" Margin="19,391,0,0" VerticalAlignment="Top" Width="96" ToolTip="Beendet diese Funktion" IsCancel="True" IsDefault="True"/>
- <Button x:Name="bt_Help" Content="Hilfe" HorizontalAlignment="Left" Height="30" Margin="308,391,0,0" VerticalAlignment="Top" Width="88" ToolTip="Hilfestellung"/>
- <Button x:Name="bt_Action" Content="Abschicken" Height="30" Width="88" Margin="172,391,267,0" VerticalAlignment="Top" ToolTip="sichern des LayerStatus"/>
- <DataGrid Name="dgHistorie" Margin="10,45,-455,70"></DataGrid>
- <Button x:Name="bt_FilterAll" Content="ALLE" HorizontalAlignment="Left" Height="28" Margin="777,393,-338,0" VerticalAlignment="Top" Width="88" ToolTip="Filter anwenden"/>
- <Button x:Name="bt_FilterNo" Content="KEINE" Width="88" Height="28" Margin="879,393,-440,0" VerticalAlignment="Top" RenderTransformOrigin="1.135,0.429" ToolTip="Filter löschen"/>
- </Grid>
- </Window>
Den nachfolgenden Code für die Datenbefüllung habe ich im Weg gefunden. In der ersten Spalte soll eine Checkbox sein, damit die Zeilen für nachfolgende Schritte ausgewählt werden können. Deshalb habe ich auch bei der Bestückung den Wert Import hinzugeführt.
VB.NET-Quellcode
- Imports System.Text.RegularExpressions
- Imports System.Collections.Generic
- Imports System.Windows
- Public Class DLG_GSEW_ImportHistorie
- Public _MyApplication As Mum.Geo.Client.Application
- Public Sub New(MyApplication As Mum.Geo.Client.Application)
- ' Dieser Aufruf ist für den Designer erforderlich.
- InitializeComponent()
- _MyApplication = MyApplicationa
- Dim Historie As List(Of User) = New List(Of User)()
- Historie.Add(New User() With {
- .Import = False,
- .Id = 1,
- .Name = "John Doe",
- .Birthday = New DateTime(1971, 7, 23)
- })
- Historie.Add(New User() With {
- .Import = False,
- .Id = 2,
- .Name = "Jane Doe",
- .Birthday = New DateTime(1974, 1, 17)
- })
- Historie.Add(New User() With {
- .Import = False,
- .Id = 3,
- .Name = "Sammy Doe",
- .Birthday = New DateTime(1991, 9, 2)
- })
- dgHistorie.ItemsSource = Historie
- End Sub
- ''' <summary>
- ''' die gesamte Auswahl aufheben
- ''' </summary>
- Private Sub bt_FilterNo_Click(sender As Object, e As RoutedEventArgs) Handles bt_FilterNo.Click
- SetSelection(False)
- End Sub
- ''' <summary>
- ''' die gesamte Auswahl setzen
- ''' </summary>
- Private Sub bt_FilterAll_Click(sender As Object, e As Windows.RoutedEventArgs) Handles bt_FilterAll.Click
- SetSelection(True)
- End Sub
- Private Sub SetSelection(Status As Boolean)
- For i As Integer = 0 To dgHistorie.Items.Count - 1
- Next
- End Sub
- Public Class User
- Public Property Import As Boolean
- Public Property Id As Integer
- Public Property Name As String
- Public Property Birthday As DateTime
- End Class
- End Class
Nun habe ich zwei Fragen:
1.) Wie kann ich auf die Checkboxen zugreifen um die Auswahl für alle zu de/aktivieren? (Funktion: SetSelection)
2.) Dann suche ich einen Weg einmal durch alle Zeilen zu laufen und dabei die Spalte 1 für die Zeilen auszulesen, deren Checkbox true ist.
Irgendwie komme ich mit den gefundenen Beispielen im Web nicht klar.
Gruß Jan