2014-08-28 21 views
5

WPF için yeni değilim ve gerçekten başıma mümkün olduğunca anlamaya çalışıyorum arasında String.length bağlanır ve ben aşağıdaki gibi dizeleri listesi ile doldurmak çalışıyorum:WPF DataGrid, benim ilk DataGrid denetimi oluşturduk</p> <p>... yerine dize metni

<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 

Ancak, aslında dizeleri uzunluğu gibi bir başlık "uzunluk" ve değerlerle doldurur. Neden dize değerleriyle kendileri doldurmuyor?

Burada temel bir şeyi kaçırdığımı açıkça görüyorum, ama hayatımın ne olduğunu anlayamıyorum.

Şimdiden teşekkürler!

cevap

10

Varsayılan olarak DataGrid otomatik olarak, verilen öğe sınıfından sütunlar oluşturduğundan, sütuna dönüşebileceği String sınıfındaki özellikleri arayacaktır. Bir başlık ya da özel bir şey gerekmedikçe - Kendi sütunu oluşturma ve dizeleri tek sütun için bir `ListBox` kullanmak sadece AutoGenerateColumns

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

Ya kapatarak bu önleyebilirsiniz. –

+0

@lc. veya 'ListBox' işlevini kullanın, ancak OP'nin öğeyi düzenlemek istediği ya da 'ItemTemplate' ya da basit 'DisplayMemberPath' gerektiğinde değişip değişmediğini ve OP'nin sütun başlığı istemediğini ya da açmayacağını net olarak belirtmez. – dkozl

+0

Teşekkürler, bu mükemmel bir anlam ifade ediyor. Bir öğrenme alıştırması için yukarıdaki kodu kullanıyordum - son kontrol, düzenleme için kullanılacaktır. –