Laden...

DataGridTemplate, Combobox und ItemSource

Erstellt von s09 vor 11 Jahren Letzter Beitrag vor 11 Jahren 717 Views
S
s09 Themenstarter:in
1 Beiträge seit 2012
vor 11 Jahren
DataGridTemplate, Combobox und ItemSource

Hallo,
Ich habe derzeit ein Problem ( wer hätte es gedacht ) über dies ich nun seit 3 tagen nicht hinweg komme, nur mit jeweils sehr kleinen schritten. Versuche einen Stundenplan nachzubauen und scheitere an den Punkt die Comboboxen mit der ItemSource zufüllen, sie kommen garnicht erst an, setze ich die Combobox außerhalb des DataGrids geht sie, wahrscheinlich ein &quot;kleiner&quot; Fehler den ich nicht sehe.</span> Des weiteren füllt sich die Tabelle ( eine ganze Zeile, schätze fehlt ein Binding ? nur wo/wie) mit dem Satz den ich ihn gebe, was eig garnicht gewollt ist - es sollte Tagesweise sein. ( Sollte das letzte zu schlecht geschildert sein : ein neues Objekt des &quot;timestable&quot;s belagert die Zeile Montag bis Freitag, dabei sollte es nur in Montag sein. )

Das sind die Templates

            <DataTemplate x:Key="DataGridTemplate_Row">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="15"/>
                        <RowDefinition Height="15"/>
                        <RowDefinition Height="15"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Text="{Binding Klasse}"></TextBlock>
                    <TextBlock Grid.Row="1" Text="{Binding Lehrer}"></TextBlock>
                    <TextBlock Grid.Row="2" Text="{Binding Fach}"></TextBlock>
                    <TextBlock Grid.Row="3" Text="{Binding Raum}"></TextBlock>
                </Grid>
            </DataTemplate>
            <DataTemplate x:Key="DataGridTemplate_RowEdit">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="20"/>
                        <RowDefinition Height="20"/>
                        <RowDefinition Height="20"/>
                    </Grid.RowDefinitions>
                    <ComboBox Grid.Row="0" ItemsSource="{Binding vListKlasse}"/>
                    <ComboBox Grid.Row="1" ItemsSource="{Binding vListRaum}"/>
                    <ComboBox Grid.Row="2" ItemsSource="{Binding vListLehrer}"/>
                </Grid>
            </DataTemplate>

C# Teil:

      oForTimetable.Add(new timetable
                    {
                        Lehrer = "Name",
                        Klasse = "Klasse",
                        Raum = "Raum",
                        Fach  = "Fach",
                        vListKlasse = cfg_w.vClass,
                        vListRaum = cfg_w.vRoom,
                        vListLehrer = cfg_w.vTeacher
                    });

// die klasse dazu
        public class timetable
        {
            public int Nr { get; set; }
            public string Zeit { get; set; }
            public string Lehrer { get; set; }
            public string Klasse { get; set; }
            public string Raum { get; set; }
            public string Fach { get; set; }

            public List<string> vListLehrer { get; set; }
            public List<string> vListKlasse { get; set; }
            public List<string> vListRaum { get; set; }

        }


Edit : ein Problem Gelöst

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo,

Sorry, aber deine Frage ist ziemlich unklar.
Soweit ich das verstanden habe willst du ein DataGrid mit den Daten füllen.
Dazu musst du nicht die DataGrid-Row Templates erstellen.
Es reicht wenn du einfach die DataGrid Columns richtig definierst.
D.h. für deine Listen kannst du eine ComboBox Column verwenden

Schau dir mal ein Tutorial zum DataGrid an: WPF DataGrid Control

Grüße
Michael