2012-05-10 26 views

cevap

17

Evet, öyle. Sadece AutoGenerateColumns=False işaretleyin ve sütunlarınızı manuel olarak tanımlayın. MSDN Library documentation'da görebileceğiniz gibi, metinle ilişkili normal sütunları, onay kutusu sütunlarını, özel XAML şablon sütunlarını ve daha fazlasını kullanabilirsiniz.

<DataGrid ItemsSource="{Binding DataSource}" AutoGenerateColumns="False" > 
    <DataGrid.Columns> 
    <DataGridTextColumn Header="Simple Value" 
         Binding="{Binding SimpleValue}" Width="*" /> 
    <DataGridTemplateColumn Width="*" Header="Complex Value"> 
     <DataGridTemplateColumn.CellTemplate> 
      <DataTemplate> 
      <StackPanel> 
       <TextBox Text="{Binding ComplexValue}"/> 
       <TextBox Text="{Binding ComplexValue2}"/> 
      </StackPanel> 
      </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
    </DataGrid> 
+0

Teşekkürler !!!!!!!!! –

4

Evet, Evet çok fazla. Tablo yapınız ve Sütun Adınız sabit kalırsa Datagrid XAML'de AutoGenerateColums = False ayarını yapın ve tüm sütunları el ile oluşturun.

<dg:DataGrid Name="mydg" ItemsSource="{Binding Data}" AutoGenerateColumns="False"> 
<dg:DataGrid.Columns> 
    <dg:DataGridTextColumn Header="Col 0" Binding="{Binding FirstColumnName}" /> 
    <dg:DataGridTextColumn Header="Col 1" Binding="{Binding SecondColumnName}" /> 
</dg:DataGrid.Columns> 
</dg:DataGrid> 

ve sonra codebehind basit içinde

mydg.ItemSource = Data.DefaultView; 
senin DataTable sütun FirstColumnName içeren Şimdi

ve bunların veri kılavuzunu veri sınırlama edilecektir SecondColumnName gibi Kaynağını sağlarlar.

+0

Teşekkürler !!!!!!!!!! –

+0

niçin 'dg:' önek var, bu bir zorunluluk mu? –

5

Ayrıca, DataGrid.AutoGeneratingColumn olayı işlemek ve size gösterilen istemeyen sütunlar için e.Cancel = true ayarlayabilirsiniz. Bu şekilde göstermek istediğiniz sütunları manuel olarak tanımlamanız gerekmez.