Laden...

Combobox in DataGridTemplateColumn mit Binding befüllen

Erstellt von C#bass vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.387 Views
C
C#bass Themenstarter:in
39 Beiträge seit 2014
vor 9 Jahren
Combobox in DataGridTemplateColumn mit Binding befüllen

Hallo,

ich habe folgendes DataGridTemplateColumn erstellt


 <UserControl.Resources>
        <DataGridTemplateColumn x:Key="MachineTypeComboboxTemplate" MaxWidth="250" Header="MachineType">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <ComboBox x:Name="MachineTypeCombobox" ItemsSource="{Binding}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
</UserControl.Resources>

Diese DataGridTemplateColumn weise ich dann einem DataGrid zu

 DataGridTemplateColumn col1 = FindResource("MachineTypeComboboxTemplate") as DataGridTemplateColumn;

 dgMachines.Columns[3] = col1;

Die Spalte 3 enthält jetzt eine leere Combobox. Meine Frage lautet, wie bzw. weann kann ich die Combboxen befüllen bzw. mit einem Binding festlegen?

2.223 Beiträge seit 2005
vor 9 Jahren

Hallo C#bass,

Das Binding kann ja auch nicht funktionieren, da der DataContext im besten Falle an dieser stelle ein nur einfacher Datentyp ist und nicht etwas vom Typ IEnumerable.

Entweder Du setzt die Items der Combobox im Code direkt oder Du mußt deinem Binding eine RelativeSource mitgeben

https://msdn.microsoft.com/de-de/library/ms743599%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

Viele Grüße
Lars

5.299 Beiträge seit 2008
vor 9 Jahren

ich denke eher eine StaticResource, die iwie die Items enthält, die die Combo anzeigen soll.

Der frühe Apfel fängt den Wurm.

C
C#bass Themenstarter:in
39 Beiträge seit 2014
vor 9 Jahren

Danke für die Antworten aber könnt ihr eventuell ein Beispiel zeigen, kenne mich mit WPF noch nicht so gut aus.

5.299 Beiträge seit 2008
vor 9 Jahren

Hier sollte was dabei sein: https://www.vb-paradise.de/index.php/Thread/65927-die-vier-Views-in-Wpf/
Ist allerdings in vb. Aber du kannst es zumindest starten, die verschiedenen BeispielProjekte als StartObjekt setzen, und gucken, ob eines dabei ist, was sone Combo beinhaltet, wie du sie dir vorstellst. JoiningView nenne ich diese Art der Präsentation, weil sie dem ähnelt (aber leistungsfähiger ist), was man mit einem Sql-Inner-Join von einer DB abrufen könnte.

Der frühe Apfel fängt den Wurm.