2014-08-28 11 views
5

मैं WPF के लिए नया हूँ, और सही मायने में अपने आप से जितना संभव हो उतना यह पता लगाने की कोशिश कर रहा हूँ के बजाय string.Length को बांधता है ...WPF डेटा ग्रिड स्ट्रिंग पाठ

मैं अपनी पहली डेटा ग्रिड नियंत्रण बना लिया है, और मैं नीचे के रूप में स्ट्रिंग की एक सूची से पॉप्युलेट करने के लिए कोशिश कर रहा हूँ:

<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 

हालांकि, यह वास्तव में एक शीर्षक "लंबाई" और तार की लंबाई के रूप में मूल्यों के साथ भरता है। यह स्ट्रिंग मानों के साथ क्यों नहीं आ रहा है, खुद?

यह स्पष्ट है कि मुझे यहां कुछ मौलिक याद आ रही है, लेकिन मैं अपने जीवन के लिए यह नहीं समझ सकता कि यह क्या है।

अग्रिम धन्यवाद!

उत्तर

10

क्योंकि डिफ़ॉल्ट ऑटो द्वारा दिए गए आइटम वर्ग से कॉलम उत्पन्न करता है, इसलिए यह String कक्षा में गुणों की खोज करेगा जो इसे कॉलम में परिवर्तित कर सकता है। जब तक आप एक शीर्ष लेख या कुछ खास जरूरत है - आप अपनी खुद की स्तंभ बनाने और AutoGenerateColumns

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

या बस बंद करने से तार के एक स्तंभ के लिए एक 'ListBox' का उपयोग करके उस से बच सकते हैं। –

+0

@ एलसी। या 'लिस्टबॉक्स' का उपयोग करें, लेकिन यह स्पष्ट नहीं है कि ओपी आइटम को संपादित करना चाहता है या नहीं, अगर आपको 'आइटम टेम्पलेट' या सरल 'डिस्प्ले मेम्बरपाथ' की आवश्यकता है तो यह बदलता है और यह भी स्पष्ट नहीं है कि ओपी कॉलम हेडर चाहता है या नहीं। – dkozl

+0

धन्यवाद, यह सही समझ में आता है। मैं सीखने के अभ्यास के लिए उपरोक्त कोड का उपयोग कर रहा था - अंतिम नियंत्रण का संपादन के लिए उपयोग किया जाएगा। –

संबंधित मुद्दे