Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Gelöst: System.InvalidCastException   HResult=0x80004002

 

 

Fehlermeldung

System.InvalidCastException  HResult=0x80004002

  Message=Das Objekt des Typs "<>f__AnonymousType6`6

[System.Int32,System.String,System.String,System.String,System.String,System.String]"

 

kann nicht in Typ "Schichtplaner.tblBase_Mitarbeiter" umgewandelt werden.

 

Was bedeutet die Fehlermeldung:

Die Fehlermeldung sagt aus, dass ein Array[..] aus Integer und Strings nicht in eine Tabelle-Struktur umgewandelt werden kann.

 

Vorkommen:

Der Fehler tritt auf, wenn man eine Zeile in einem WPF DataGrid auswählt. Das Datengrid ist über Binding an einen Tabelle gebunden gewesen.

 

 

Alter Code, C#, XAML zugriff auf WPF DataGrid

private void CtlDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

    if (ctlDataGrid.SelectedItem != null)

    { 

        var item = (tblBase_Mitarbeiter) ctlDataGrid.SelectedItem;

        load_Dataset_byID(item.IDMitarbeiter);

    }

}

 

 

Lösung:

Wenn man in einem DatenGrid eine Zeile aus mehreren Tabellen über Join-Abfragen bindet, dann kann die Auswahl einer einzelnen Zeile auch nicht in das Format eine Tabelle konvertiert werden.

Als Lösung kann man den SelectedValue eines Grids auswerten. Hierzu muss allerdings eine Spalte über den SelectedValuePath eingestellt werden.

 

Neuer Code mit Abfrage des SelectedValues eines DataGrid

.cs

private void CtlDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)

{

    int ID = (int) ctlDataGrid.SelectedValue;

    load_Dataset_byID(ID);

}

 

.xaml

In der xaml Datei muss der SelectedValue auf eine Spalte des Datengrids eingestellt werden

<DataGrid x:Name="ctlDataGrid" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"

          AutoGenerateColumns="False"

          GridLinesVisibility="All"

          Background="#F0f0f0"

          ItemsSource="{Binding}" 

          SelectionMode="Single" 

          IsReadOnly="True" 

          MouseDoubleClick="ctlDataGrid_MouseDoubleClick"

           SelectionChanged="CtlDataGrid_SelectionChanged"

           HeadersVisibility="All"                  

           Grid.Row="1"    

           SelectedValuePath="IDMitarbeiter"

          >

 

            <DataGrid.Columns >

                <DataGridTextColumn Header="ID" Binding="{Binding IDMitarbeiter}"/>

                <DataGridTextColumn Header="Nachname" Binding="{Binding Nachname}"/>

                <DataGridTextColumn Header="Vorname" Binding="{Binding Vorname}"/>

                <DataGridTextColumn Header="Schicht" Binding="{Binding Schicht}" />

                <DataGridTextColumn Header="Maschine" Binding="{Binding Maschine}"/>

                <DataGridTextColumn Header="MA Gruppe" Binding="{Binding Mitarbeitergruppe}" Width="*"/>

                

            </DataGrid.Columns>

        </DataGrid>

 

 

Ergebnis:

Wenn jetzt eine Zeile selectiert wird, wird als Ergebnis nicht die Zeile sonder der Wert der definierten Spalte angezeigt.

SelectedValuePath=IDMitarbeiter

SelectedValue=2

 

 

 

Komplette Details Fehlermeldung

System.InvalidCastException

  HResult=0x80004002

  Message=Das Objekt des Typs "<>f__AnonymousType6`6[System.Int32,System.String,System.String,System.String,System.String,System.String]" kann nicht in Typ "Schichtplaner.tblBase_Mitarbeiter" umgewandelt werden.

 

  Source=Schichtplaner

  StackTrace:

   at Schichtplaner.Page_Base_Mitarbeiter.CtlDataGrid_SelectionChanged(Object sender, SelectionChangedEventArgs e)

 

 

 

 

Mobile
»
OK: Laufzeitfehler -2147217887 80040e21
»
Access fehler: Dieser Datensatz wurde seit Beginn der Bearbeitung von einem anderen Benutzer geändert.
»
Access Crash beim Schliessen eines Fensters.
»
Fehlercode 94: Invalid Use of Null
»
Access Fehlermeldung: Fehlender Verweis auf OWC10.DLL
»
MS Access Fehler: Das Objekt enthält nicht das Automatisierungobjekt
»
MS Access Fehlermeldung: Sie können keine Änderung am Primärschlüssel vornehmen
»
Gelöst Fehlermeldung: Access Undefinierte Funktion Format im Ausdruck
»
Gelöst: Schnellformatvorlagen in Microsoft Access 2016 anwenden
»
Gelöst: Microsoft Access 2016 Bild,Image Buttons sind nicht mehr sichtbar

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de