Laden...

DataGridComboBoxColumn - Bei einfügen einer neuen Zeile kommt bei dataGrid ein rotes Rufzeichen

Erstellt von Da_Flo vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.105 Views
D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 12 Jahren
DataGridComboBoxColumn - Bei einfügen einer neuen Zeile kommt bei dataGrid ein rotes Rufzeichen

Hallo!

Ich hab eine Tabelle wo ich Parameter definieren kann, ein Wert der einen Parameter beschreibt ist seine Einheit, nun möchte ich gern über eine DataGridComboBoxColumn die verfügbaren einheiten aus einer anderen Tabelle anzeigen, soweit hab ichs schon.
Allerdings, zeigt er in der ComboBoxColumn nix an wenn ich die Tabelle lade, die ComboBox selber wird aber richtig gefüllt.
Wenn ich nun einen neuen Datensatz anlegen will kommt links im rowHeader ein rotes Rufzeichen.

hier mein XAML:


    <fs:BaseScreenWpf.Resources>
        <CollectionViewSource x:Key="einheitenViewSource" d:DesignSource="{d:DesignInstance my:Einheiten, CreateList=True}" />
    </fs:BaseScreenWpf.Resources>
.....

        <DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Grid.Column="1" Grid.Row="1" ItemsSource="{Binding}" Margin="10,10,12,8" Name="schablonenparameterDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected">
            <DataGrid.Columns>
                <DataGridTextColumn x:Name="schablonenNrColumn" Binding="{Binding Path=SchablonenNr}" Header="Schablonen Nr" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="parameterNrColumn" Binding="{Binding Path=ParameterNr}" Header="Parameter Nr" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=Name}" Header="Name" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="proeNameColumn" Binding="{Binding Path=ProeName}" Header="Proe Name" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="datentypColumn" Binding="{Binding Path=Datentyp}" Header="Datentyp" Width="SizeToHeader" />
                <DataGridCheckBoxColumn x:Name="konstruktionsParameterColumn" Binding="{Binding Path=KonstruktionsParameter}" Header="Konstruktions Parameter" Width="SizeToHeader" />

//Um diese Spalte gehts!
                <DataGridComboBoxColumn x:Name="einheitColumn" SelectedItemBinding ="{Binding Path=Einheit}" SelectedValuePath="Nr" ItemsSource="{Binding Source={StaticResource einheitenViewSource}}" DisplayMemberPath="Bezeichnung" Header="Einheit" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="standardwertColumn" Binding="{Binding Path=Standardwert}" Header="Standardwert" Width="SizeToHeader" />
                <DataGridTextColumn x:Name="sortorderColumn" Binding="{Binding Path=Sortorder}" Header="Sortorder" Width="SizeToHeader" />
            </DataGrid.Columns>
        </DataGrid>

Wie gesagt: Combobox wird gefüllt, allerdings passt die bindung zwischen dem Binding für die DataGrid und er Combobox nicht ganz.

die Members sind "Bezeichnung" zum anzeigen in der Combobox bzw "Nr" ist foreignkey

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo Da_Flo,

das rote Rufzeichen kommt standardmäßig von der Validierung od. sonst einem Fehler bei der Bindung. Füge mal beim Binding für die ComboBox einen Converter (einfach einen erstellen) hinzu und setzte dort einen Breakpoint und schau ob die Daten passen.

Wobei mir auffällt, dass SelectedValuePath und DisplayMemberPath weggelassen werdne können und die Anzeige durch ein Template geregelt werden kann. Das aktuelle Item hast du ja separat gebunden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"