none
Fragen zu DataGrid (WPF) RRS feed

  • Frage

  • Hallo zusammen

    Ich mache meine ersten Versuche mit einem WPF Formular. Dabei habe ich noch ein paar Schwigkeiten. Auf meinem WPF-Formular befindet sich ein Menü, ein DataGrid und eine StatusBar.

    Das DataGrid habe ich wie folgt an meine DataTable gebunden:

    XAML
    <DataGrid AutoGenerateColumns="False" Grid.Row="1" HorizontalAlignment="Stretch" Margin="0,0,0,0" Name="DataGrid" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" SelectionUnit="Cell" VerticalContentAlignment="Stretch" ItemsSource="{Binding}">
        <DataGrid.Columns>
               <DataGridTextColumn Header="Prio" MinWidth="40" Width="40" Binding="{Binding priorität}" />
               <DataGridTextColumn Header="Bulidprodukt" IsReadOnly="True" MinWidth="170" Width="170" Binding="{Binding buildprodukt}" />
               <DataGridTextColumn Header="Server" MinWidth="100" Binding="{Binding server}" />
        </DataGrid.Columns>
    </DataGrid>
    <StatusBar Grid.Row="1" Height="25" HorizontalAlignment="Stretch" Margin="-12,410,0,0" Name="StatusBar1" VerticalAlignment="Bottom" />

    VB
    DataGrid.DataContext = datenbank.VerteilungTable

    Und nun meine Probleme damit:

    • Die Spalte Prio zeigt keine Daten an, weil in Bindings ein Umlaut (priorität) ist. Klar, man könnte in der DB den Zellennamen ändern, dieser ist aber nun mal so und die DB wird noch weiter benutzt
    • Die Spalte Server füllt nicht die Breite des Fenster nicht aus, obwohl die Width auf Auto steht
    • Das DataGrid überdekt die StatusBar. Es sollte jedoch nur der Rest des Festers füllen, ohne die StatusBar

    Weiss jemand, wie ich diese 3 Probleme beheben kann??

    Gruss Marcel

     

    • Verschoben Thorsten Dörfler Dienstag, 21. September 2010 07:13 non-VB (aus:Visual Basic (ab Version 2002 / .NET))
    Dienstag, 21. September 2010 07:02

Antworten

  • Hi Marcel,
    Umlaute im XML (XAML)?
     
    Die Bezeichnung der Datenbankspalte ist egal. Im Mapping zwischen Datenbank und Business-Objekt kann man das ändern.
     
    Die Breite der Spalte "Server" steht auf Min-Width=100 und wird damit atomatisch angepasst mit der Begrenzung, dass sie mindestens 100 breit ist.
     
    Grid und StatusBar liegen in der gleichen Zeile des Container-Grids (Grid.Row=1) und überdecken sich damit.
     

    --
    Viele Gruesse
    Peter

    Dienstag, 21. September 2010 08:10

Alle Antworten

  • Hallo Marcel,

    ich habe Deinen Beitrag ins WPF Forum verschoben, da ich keinen Zusammenhang sehe, der für VB spezifisch ist.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Dienstag, 21. September 2010 07:17
  • Hallo Thorsten

    Das geht in Ordnung. Das nächste mal stelle ich sowas von Anfang an in dieses Formum.

    Gruss Marcel

    Dienstag, 21. September 2010 07:36
  • Hi Marcel,
    Umlaute im XML (XAML)?
     
    Die Bezeichnung der Datenbankspalte ist egal. Im Mapping zwischen Datenbank und Business-Objekt kann man das ändern.
     
    Die Breite der Spalte "Server" steht auf Min-Width=100 und wird damit atomatisch angepasst mit der Begrenzung, dass sie mindestens 100 breit ist.
     
    Grid und StatusBar liegen in der gleichen Zeile des Container-Grids (Grid.Row=1) und überdecken sich damit.
     

    --
    Viele Gruesse
    Peter

    Dienstag, 21. September 2010 08:10
  • Hallo Peter

    Vielen Dank für Deine Antwort. Ich werde versuchen das umzusetzen. Bei der Spalte Server hätte ich eigentlich erwartet, dass diese automatisch breiter wird, wenn man das Fesnter zur Laufzeit breiter macht. Dies werde ich wohl Programmtechnisch lösen müssen. Und mit dem Mapping werde ich mich auseinandersetzen um zu sehen, wie dieses Funktioniert.

    Gruss Marcel

    Dienstag, 21. September 2010 09:08