2014-08-28 11 views
5

Jestem nowym do WPF i jestem naprawdę próbuje dowiedzieć się jak najwięcej o sobie ...WPF DataGrid wiąże się string.length zamiast tekstu strun

stworzyłem moją pierwszą kontrolę DataGrid i staram się wypełnić go z listy ciągów znaków, jak poniżej:

<UserControl x:Class="DataGridTest" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <Grid Style="{StaticResource ContentRoot}"> 
     <DataGrid Name="MyDataGrid" ItemsSource="{Binding}" HorizontalAlignment="Stretch" Height="500"/> 
    </Grid> 
</UserControl> 

Private Sub DataGridTest_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded 
     Dim StringCollection As List(Of String) = New List(Of String) 
     StringCollection.Add("Test") 
     StringCollection.Add("Test1") 
     StringCollection.Add("Test2") 
     StringCollection.Add("Test3") 
     StringCollection.Add("Test4") 
     MyDataGrid.DataContext = StringCollection 

    End Sub 

jednak faktycznie zapełnia z nagłówkiem „długość” i wartości jako długości strun. Dlaczego nie wypełnia się samymi wartościami łańcuchów?

Jest oczywiste, że brakuje mi czegoś fundamentalnego, ale nie mogę dla mnie zrozumieć, co to jest.

Z góry dziękuję!

Odpowiedz

10

Ponieważ domyślnie auto generuje kolumny z podanej klasy przedmiotu, więc wyszuka właściwości w klasie String, które może przekonwertować na kolumnę. Można tego uniknąć, tworząc swoją własną kolumnę i wyłączanie AutoGenerateColumns

<DataGrid Name="MyDataGrid" ItemsSource="{Binding}" ... AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding}" Header="Something"/> 
    </DataGrid.Columns> 
</DataGrid> 
+1

lub po prostu użyć 'ListBox' dla pojedynczej kolumny ciągi - chyba trzeba nagłówek lub coś specjalnego. –

+0

@lc. lub użyj 'ListBox', ale nie jest jasne, czy OP chce edytować element, czy nie, ponieważ zmienia się, jeśli potrzebujesz' ItemTemplate' lub prostej 'DisplayMemberPath' jest wystarczająca i nie jest też jasne, czy OP chce nagłówka kolumny czy nie. – dkozl

+0

Dzięki, to ma sens. Użyłem powyższego kodu do ćwiczenia uczenia się - do edycji zostanie użyty ostateczny kontroler. –