Announcement

Collapse
No announcement yet.

Dictionary an ein Controls.DataGrid binden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dictionary an ein Controls.DataGrid binden

    Hallo,

    ich habe ein WPF-Benutzersteuerelement erstellt und darauf ein Microsoft.Windows.Controls.DataGrid abgelegt. Nun möchte ich den Inhalt meines Dictionaries<int, KomplexerTyp> gerne in diesem DataGrid anzeigen.

    Beim Googlen finde ich nur Einträge für einen DataGridView - dessen Methoden zur Bindung stehen aber im WPF-Grid nicht zur Verfügung.

    Falls es dadurch einfacher wird: Die Daten müssen vom Grid aus nicht bearbeitet werden können - es dient nur zur Anzeige.

    [highlight=c#]
    public bool LadeGridReisen(ref Microsoft.Windows.Controls.DataGrid grdReisen)
    {
    Dictionary<int, Reise> reiseListe = GetReisenListe();
    grdReisen.DataContext??? = new Binding(???);
    }
    [/highlight]

    Ich finde leider keine für mich verwertbaren Einträge, wie ich das Dictionary an ein solches Grid binden kann.

    Für Hinweise, Links oder gar Beispielcode wäre ich sehr dankbar.

  • #2
    WPF-DataGrid an Dictionary binden?

    Ich habe mittlerweile einen Weg gefunden, um mein Dictionary an das WPF-DataGrid zu binden. Allerdings ist das Verfahren noch nicht sehr elegant und funktioniert bislang nur für Textspalten.

    Im Internet finde ich zwar viele Tutorials, diese beziehen sich jedoch nie auf eine Bindung per Code (geschweige denn speziell auf Dictionaries).

    Hier mein Code:
    [highlight=c#]
    Dictionary<int, Reise> reiseListe = GetReisenListe();
    if (reiseListe == null) return false;
    grdReisen.ItemsSource = reiseListe.Values;
    Microsoft.Windows.Controls.DataGridTextColumn ort = new Microsoft.Windows.Controls.DataGridTextColumn();
    ort.Header = "Ort";
    ort.Binding = new System.Windows.Data.Binding("Ort");
    grdReisen.Columns.Add(ort);
    [/highlight]

    Wie bekomme ich es aber hin, dass Spalten vom Typ "DataGridCheckBoxColumn" korrekt gebunden werden? Ich habe keinen booleschen Wert in meiner Klasse, möchte aber etwas in der Richtung ausdrücken:

    [highlight=c#]
    Spalte.Checked = StringWert.Equals(String.Empty) ? false : true;
    [/highlight]

    1.) Wie kann ich die Checked-Eigenschaft der Spalten definieren?
    2.) Wie kann ich die Spalten per Code (nicht über XAML) eleganter an mein Dictionary binden?

    Comment

    Working...
    X