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
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!"