Datagrid: Zeile zum Eingeben fehlt

  • WPF

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Lubeca.

    Datagrid: Zeile zum Eingeben fehlt

    Hallo zusammen,
    Ich habe ein Datagrid, das durch Ziehen des DataSets aus den Datenquellen in mein Fenster erstellt wurde.
    Das DataSet ist leider noch leer, da die Daten erst während der Laufzeit eingeben werden.
    Wenn ich das Programm schließe, soll der Inhalt in einer XML Datei gespeichert und beim nächsten Start wieder ausgelesen werden.
    Starte ich jetzt mein Programm wird die leere Zeile zum Eingeben neuer Datensätze nicht angezeigt nur die Überschriften.
    Natürlich steht "IsReadOnly" auf "False" und "CanUserAddRows" ist auf "True".
    Ich habe schon verschiedene Einstellungen getestet.

    Woran kann es liegen, das die leere Zeile hier nicht angezeigt wird?

    Muss ich einen leeren Datensatz dem Dataset per Code hinzufügen?

    Quellcode

    1. ...
    2. <Window.Resources>
    3. <local:DataSet1 x:Key="DataSet1"/>
    4. <CollectionViewSource x:Key="ProgrammeViewSource" Source="{Binding Programme, Source={StaticResource DataSet1}}"/>
    5. </Window.Resources>
    6. ...
    7. <DataGrid x:Name="ProgrammeDataGrid" EnableRowVirtualization="True" ItemsSource="{Binding}" Margin="10,21,10,10" RowDetailsVisibilityMode="Visible" Grid.Row="1" CanUserResizeColumns="False" IsSynchronizedWithCurrentItem="False" IsTextSearchCaseSensitive="True" IsTestsearchEnabled="True">
    8. <DataGrid.Columns>
    9. <DataGridTextColumn x:Name="NameColumn" Binding="{Binding Name}" Header="Name" Width="SizeToHeader"/>
    10. <DataGridTextColumn x:Name="PfadColumn" Binding="{Binding Pfad}" Header="Pfad" Width="SizeToHeader"/>
    11. </DataGrid.Columns>
    12. </DataGrid>


    Tschüßi Lubeca
    woran ist dein DG gebunden? - ist im Snippet nicht erkennbar, weil an die CollectionViewSource offensichtlich nicht.
    Funktioniert das Binding-Picking im Xaml-Editor?

    Wenn man die Spalten selbst reinmacht (sehr zu empfehlen), dann sollteman AutogenerateColumns.False einstellen, sonst macht der doch wie er denkt (denk ich mal)
    Hallo EDR,
    Ich glaube das ist der Fehler.
    Ich habe gedacht mit dem Raufziehen des Dataset auf das Fenster erstellt er nicht nur ein DataGrid sondern auch das Binding richtig.
    Was muss ich dem DataGrid hinzufügen, damit es richtig angebunden ist?
    ?

    XML-Quellcode

    1. DataContext="{DynamicResource ProgrammeViewSource}"
    ?

    Tschüßi Lubeca
    Okay, Jetzt war es mir egal und ich habe alle gelöscht und nochmal von vorne begonnen.
    Leeres Dataset erstellt, neues Fenster hinzugefügt, Dataset Tabelle über Combobox (Klick auf Tabellennamen) so eingestellt, dass ein DataGrid angezeigt wird, genauso die ID ausgeblendet (keine) und den Tabellennamen angeklickt gehalten und auf das Fenster gezogen. Hier losgelassen wurde mir eine schöne Tabelle (DataGrid) erstellt.
    Was ich vorher anders gemacht habe, weiß ich nicht, aber jetzt ist der Code richtig und auch die Anzeige mit Zeile zum Hinzufügen.

    XML-Quellcode

    1. <DataGrid x:Name="ProgrammeDataGrid1" AutoGenerateColumns="False" Grid.ColumnSpan="2" EnableRowVirtualization="True" ItemsSource="{Binding Source={StaticResource ProgrammeViewSource}}" Margin="10" Grid.Row="2" RowDetailsVisibilityMode="VisibleWhenSelected">
    2. <DataGrid.Columns>
    3. <DataGridTextColumn x:Name="NameColumn1" Binding="{Binding Name}" Header="Name" Width="SizeToHeader"/>
    4. <DataGridTextColumn x:Name="PfadColumn1" Binding="{Binding Pfad}" Header="Pfad" Width="SizeToHeader"/>
    5. </DataGrid.Columns>
    6. </DataGrid>


    Danke für die Hilfe.
    Tschüßi Lubeca