Benutzer mit den meisten Antworten
WPF - DataGrid - RowDetails - Combobox

Frage
Antworten
-
- Wenn du weißt wie Bindings in WPF funktionieren, solltest du alles nötige Wissen nun haben.
- Ich weiß nicht was du genau vor hast.
- Deinen VB-Code kann man auch komplett mit XAML ersetzen:
<ComboBox Name="Testy" ItemsSource="{Binding MyList}" "SelectedValuePath="Key" />
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 11. Mai 2015 08:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 26. Mai 2015 06:20
-
Hallo,
hat etwas gedauert.......
also mitterweile probiere ich es mit:
Private Sub Testi_LoadingRowDetails(sender As System.Object, e As System.Windows.Controls.DataGridRowDetailsEventArgs) Dim Versuch As ComboBox = TryCast(e.DetailsElement.FindName("DSCombobox"), ComboBox) Versuch.ItemsSource = Nothing Versuch.ItemsSource = DataViewDv Versuch.SelectedValuePath = "Key" End Sub
Problem jetzt:
Es wird die Combobox angezeigt und es besteht eine Auswahlmöglichkeit.
Ich hätte aber lieber den aktuellen Wert i.V. mit dem DataGrid.
Was nun?
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 26. Mai 2015 06:21
Alle Antworten
-
Hallo,
für die ComboBox musst du einfach eine nach deinen Wünschen in das passende Template einfügen:
<DataGrid> <DataGrid.RowDetailsTemplate> <DataTemplate> <ComboBox /> </DataTemplate> </DataGrid.RowDetailsTemplate> </DataGrid>
Was verstehst du denn unter zugreifen? Zur Laufzeit ändern kannst du es zwar, nur wird es keine Auswirkung auf bereits angezeigte Elemente haben. Pauschal sollte man Templates nie zur Laufzeit ändern sondern Abhängigkeiten immer per Datenbindungen realisieren.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Hallo,
so wie du dir das denkst geht das nicht. Zur Laufzeit kann die ComboBox (bvzw. eigentlich ds gesamte Template) beliebig oft in der GUI auftauchen. Ein Zugriff ist da nicht mehr ohne weiteres möglich. Du hast folgende 2 Möglichkeiten:
- Wenn die ComboBox ein Event auslöst, kann man das Control aus dem sender-Parameter heraus hohlen.
- Du kannst das Control via Datenbindungen abhängig von Eigenschaften machen.
FindResource wird dir auch nichts bringen, siehe meine erste Antwort.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 11. Mai 2015 08:47
-
Hallo,
ich binde die Steuerelemente im Code:
Me.Testy.ItemsSource = Nothing
Me.Testy.ItemsSource = TestyDv (BindingListCollectionView)
Me.Testy.SelectedValuePath = "Key"
Normalerweise könnte ich doch jetzt die Combobox so installieren.
Hm....
gibt es für Deine Vorgehensweise auch ein bisschen Code?
Danke
Dirk
-
- Wenn du weißt wie Bindings in WPF funktionieren, solltest du alles nötige Wissen nun haben.
- Ich weiß nicht was du genau vor hast.
- Deinen VB-Code kann man auch komplett mit XAML ersetzen:
<ComboBox Name="Testy" ItemsSource="{Binding MyList}" "SelectedValuePath="Key" />
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Montag, 11. Mai 2015 08:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 26. Mai 2015 06:20
-
Hallo,
hat etwas gedauert.......
also mitterweile probiere ich es mit:
Private Sub Testi_LoadingRowDetails(sender As System.Object, e As System.Windows.Controls.DataGridRowDetailsEventArgs) Dim Versuch As ComboBox = TryCast(e.DetailsElement.FindName("DSCombobox"), ComboBox) Versuch.ItemsSource = Nothing Versuch.ItemsSource = DataViewDv Versuch.SelectedValuePath = "Key" End Sub
Problem jetzt:
Es wird die Combobox angezeigt und es besteht eine Auswahlmöglichkeit.
Ich hätte aber lieber den aktuellen Wert i.V. mit dem DataGrid.
Was nun?
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 26. Mai 2015 06:21