none
DataGrid Binding Frage RRS feed

  • Frage

  • Hallo,

    ich habe ein dynamisches Datagrid in dem ich Prüfungen und Artikel aufliste.

    Dazu habe ich eine Observable Collection aus einer Klasse die diese Prüfungen und Artikel enthält.
    Damit der User jeder Prüfung eine bestimmte Anzahl an Artikeln zuordnen kann habe ich die Collection so aufgebaut, dass wenn ein neuer Artikel hinzugefügt zu jeder Prüfung ein verweis auf den Artikel hinzugefügt wird. Die so entstandene Prüfung-Artikel-Kombination hat zusätzlich eine Property "Quantity" in welche die Anzahl der Proben je Prüfung eines Artikels geschrieben werden sollen.

    Jetzt zu meinem Problem.

    Wie schaffe ich es das die Prüfungen als RowHeaderStyle und die Artikel als Columns erscheinen. 
    Und die Mengenangaben im Grid den Artikel-Prüfung-Kombinationen zugeordnet werden?

    Bsp.: 

    So Schaut mein Grid momentan aus

    <DataGrid ItemsSource="{Binding ArticleTestCountCollection}" 
                              AutoGenerateColumns="False"
                              Visibility="{Binding ArticleTestCountDataGridVisibility}">
                        <DataGrid.RowHeaderStyle>
                            <Style TargetType="DataGridRowHeader">
                                <Setter Property="Content"  Value="{Binding DivisionStandardTestRow.TestName}" />
                            </Style>
                        </DataGrid.RowHeaderStyle> 
                            <DataGrid.Columns>
                                <DataGridTextColumn Binding="{Binding Quantity}" >
                                    <DataGridTextColumn.HeaderTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding ArticlenumberString}"/>
                                        </DataTemplate>
                                    </DataGridTextColumn.HeaderTemplate>
                                </DataGridTextColumn>                            
                        </DataGrid.Columns>
    
                    </DataGrid>
    Gibt es hierfür eine gute Lösung?
    Meine erste Idee läuft darauf hinaus das DataGrid aus dem ViewModelCode heraus zu generieren und die Inhalte (Anzahl Proben je Prüfung) dann auch manuell per Code auszulesen. Oder gibt es hier eine nette Lösung die mittels Binding funktioniert?


    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)






    Freitag, 3. April 2015 14:44

Antworten

Alle Antworten

  • Hi Peter,
    ich würde dieses Problem nicht mit einem DataGrid, sondern mit einem per Code erzeugten Grid lösen. In jeder Zelle wird dann ein Wert dargestellt, z.B. mit einem Label-Steuerelement.


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    • Als Antwort markiert Peter Sypek Montag, 6. April 2015 10:13
    Sonntag, 5. April 2015 18:57
  • Ok, das scheint auch ein guter Ansatz zu sein.

    Zumal man die Steuerelemente im normalen Grid leichter formatieren kann.

    Ich denke das wäre auch für meinen Zweck besser von mir zu handeln.

    Danke für den Hinweis.

    Manchmal ist die Denkweise einfach festgefahren. Datenbank führt nicht zwangsläufig dazu dass man ein Datagrid oder eine Listbox etc. verwenden sollte.


    Gruß

    Peter

    Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)

    Montag, 6. April 2015 10:13