Laden...

WPF DatagridComboBoxColumn SelectedValue

Erstellt von CyberHunter vor 12 Jahren Letzter Beitrag vor 10 Jahren 5.358 Views
C
CyberHunter Themenstarter:in
131 Beiträge seit 2007
vor 12 Jahren
WPF DatagridComboBoxColumn SelectedValue

Hallo zusammen,

ich habe ein Datagrid auf meiner WPF Anwendung.
Dieses Datagrid besitzt eine DataGridComboBoxColumn.


 <DataGridComboBoxColumn Width="*" Header="Art" SelectedItemBinding="{Binding Path=Art}" SelectedValuePath="{Binding Path=Art}"  />

Der DataGridComboBoxColumn.ItemsSource Property weise ich eine DataTable zu:


(dgWerkstoffe.Columns[0] as DataGridComboBoxColumn).ItemsSource = arten;

Soweit so gut, die Tabelle wir korrekt angezeigt und auch die Items der Combobox der jeweiligen Zeile sind korrekt selektiert.

Nun möchte ich im Datagrid RowEditEnding - Event den Wert der Combobox haben.
Ich komme aber nicht an den Wert heran, kann mir jemand einen Tip geben wie ich die SelectedValue auslesen kann.


 private void datagrid1_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
//dachte in etwa so:
(this.datagrid1.Columns[0].GetCellContent(e.Row) as ComboBox).SelectedValue.ToString()
//Jedoch: (this.datagrid1.Columns[0].GetCellContent(e.Row) as ComboBox) == NULL
}

Danke für eure Hilfe
CyberHunter

C
16 Beiträge seit 2013
vor 10 Jahren

Hallo,

gibt es hierzu schon eine Lösung?

Ich stehe vor einem ähnlichen Problem.

Ich habe eine gefüllte Liste ("Files"), und eine Bindung an ein DataGridComboBoxColumn.

Der Inhalt der Liste wird auch korrekt angezeigt, und man kann ein Element auswählen.

Aber wie komme ich zu dem Wert des gewählten Elements?

Wenn ich es über die Zeile versuche:

rowView = DataGrid.SelectedItem;
rowView["File"].ToString();

ist der Wert dieser Spalte immer leer (andere Spalten haben den korrekten Wert).


 <DataGridComboBoxColumn x:Name="FileColumn"  Header="File" SelectedItemBinding="{Binding Path=Files, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="{Binding Path=Files}">

FileColumn.ItemsSource = Files;

Kann jemand helfen?

Gruß,
Cyan

5.299 Beiträge seit 2008
vor 10 Jahren

na, der gewählte Wert wird doch in den Datensatz geschrieben, der im Datagrid angewählt ist. also in Datagrid.SelectedItem ist der Datensatz. und das kann man ans Viewmodel binden.

Der frühe Apfel fängt den Wurm.

C
16 Beiträge seit 2013
vor 10 Jahren

Danke für die Antwort.

Was mir gefehlt hatte, war das ComboBoxColumn_SelectionChanged - Ereignis, statt dem Ereignis des DataGrids.

Aber jetzt geht es.