none
Listview mit GridViewColumn .... automatisch befüllen ???? RRS feed

  • Frage

  • Hab ein GridView in welches 29 Spalten sollen, wenn ich das nicht unbedingt händisch eingeben möchte um auch Fehler zu vermeiden, wie kann ich die händische Eingabe umgehen ... sodaß ich nicht 29 mal
    <GridViewColumn Header="CustomerKey"    DisplayMemberBinding="{Binding CustomerKey}" /> eingeben muß.


    Hier mein bisheriger Code

    <Window x:Class="Kapitel1._5Version3.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Performance Test" Height="350" Width="525">
        <Grid>
            <ListView Name="LvKunden"   ItemsSource="{Binding}">
                <ListView.View>
                    <GridView>
                        <GridView.Columns>
                            <GridViewColumn Header="CustomerKey"    DisplayMemberBinding="{Binding CustomerKey}" />
                            <GridViewColumn Header="GeographyKey"    DisplayMemberBinding="{Binding GeographyKey}" />
                            <GridViewColumn Header="CustomerAlternateKey"    DisplayMemberBinding="{Binding CustomerAlternateKey}" />
                            
                        </GridView.Columns>
                    </GridView>
                </ListView.View>
                
            </ListView>
        </Grid>
    </Window>
    
    


    Der vollständigkeit halber: ich binde das Listview in der Window.Xaml.cs an ein DataContext (  Linq to SQL hinzugefügt).
    Donnerstag, 6. Oktober 2011 07:49

Antworten

  • Nicht ListView, sondern DataGrid:
     
    <Grid>
      <DataGrid Name="DgKunde" ItemsSource="{Binding}" />
    </Grid>
     
    --
    Viele Gruesse
    Peter
    Donnerstag, 6. Oktober 2011 11:14

Alle Antworten

  • Du könntest eine Funktion schreiben, die die GridViewColumns generisch auf Basis der Datenquelle anlegt.


    Schau dir mal folgenden Link an:

    http://stackoverflow.com/questions/356144/wpf-gridview-with-a-dynamic-definition

     

     

     

    Donnerstag, 6. Oktober 2011 08:10
    Beantworter
  • Wow,  ... ist das in WPF kompliziert !
    Nein, da tipp ich GridViewColumns lieber von Hand ein .... :-(.
    Und wenn ich fertig bin mach ich in Zukunft wieder mit WinForms ;-).

    Danke für deine Hilfe.

    Donnerstag, 6. Oktober 2011 08:22
  • Wenn Du eine DataGrid nutzt, welches aus den Eigenschaften der gebundenen Datenobjekte die Spalten selbst generiert, hast Du diese Probleme nicht.
     
    --
    Viele Gruesse
    Peter
    Donnerstag, 6. Oktober 2011 09:24
  • Ok, Peter !

    tja, bloß wie?
    Hat jemand ein Beispiel oder einen Link?

    Mein Versuch schlägt fehl !!

    <Window x:Class="GridView.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="GridView Test" Height="350" Width="525">
        <Grid>
            <ListView>
                <DataGrid Name="DgKunde" ItemsSource="{Binding}">
                   
                </DataGrid>
            </ListView>
            
        </Grid>
    </Window>
    
    

    + Datenbindung:

     public partial class MainWindow : Window
        {
            AdvWDataContext advWorks = new AdvWDataContext();
            public MainWindow()
            {
                InitializeComponent();
               DgKunde.DataContext = advWorks.DimCustomer;
    
            }
        }
    

     

     

     

    Donnerstag, 6. Oktober 2011 10:48
  • Nicht ListView, sondern DataGrid:
     
    <Grid>
      <DataGrid Name="DgKunde" ItemsSource="{Binding}" />
    </Grid>
     
    --
    Viele Gruesse
    Peter
    Donnerstag, 6. Oktober 2011 11:14