2013-08-09 26 views
5

Şu anda, DataGridView numaralı belgede veri görüntülediğim WPF uygulamasında (MVVM ile) çalışıyorum.Özel sütunlarla WPF datagrid bağlaması

<DataGrid RowHeaderWidth="0" ItemsSource="{Binding PartsList,UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Item Name" IsReadOnly="True" Width="*" Binding="{Binding ProductName}"></DataGridTextColumn> 
     <DataGridTextColumn Header="Model Name" IsReadOnly="True" Width="*" Binding="{Binding CarModelName}"></DataGridTextColumn> 
     <DataGridTextColumn Header="Company Name" IsReadOnly="True" Width="*" Binding="{Binding CompanName}"></DataGridTextColumn> 
     <DataGridTextColumn Header="Price" IsReadOnly="True" Width="*" Binding="{Binding Rate}"> 
    </DataGrid.Columns> 
</DataGrid> 

İşte PartsList varlık Bölüm an ObservableCollection olduğunu.

Şimdi, indirim ve net miktarını gösteren başka bir sütun gösteren DataGrid ürününe özel sütun eklemek istiyorum. Bunu nasıl yapabilirim?

Bunu yapmak için iyi bir fikir verin, çünkü binlerce kayıtla çalışmam gerektiğinden performans benim için çok önemlidir.

Önceden teşekkür ederiz.

+4

sadece "İndirim" ve yukarıdaki XAML "Net Tutar" DataGrid sütunlar ekleyin ve bu özelliklere sahip olamaz Parça görünüm model sınıfınız veya başka "özel" sütun gereksinimleri var mı? –

+0

Başka özel sütun gerekmez. Çözümünüz üzerinde çalışacağım .. Teşekkür ederiz! – rupareliab

+0

veya sütunları ekleyebilir ve değerleri dengelemek için dönüştürücülere sahip olabilirsiniz – Inga

cevap

0

deneyin DataGrid ait Loaded olaya sütunlar eklemek için:

private void DataGrid_Loaded_1(object sender, RoutedEventArgs e) 
{ 
    dataGrid.Columns.Add((DataGridTextColumn)this.Resources["DiscountColumn"]); 
    dataGrid.Columns.Add((DataGridTextColumn)this.Resources["NetAmountColumn"]); 

    //Alternatively you can create columns in .cs like 

    dataGrid.Columns.Add(new DataGridTextColumn() { Header = "Dicount", Binding = new Binding("Discount") }); 
    dataGrid.Columns.Add(new DataGridTextColumn() { Header = "Net Amount", Binding = new Binding("NetAmount") }); 
} 
<Window.Resources> 
    <DataGridTextColumn x:Key="DiscountColumn" Header="Discount" IsReadOnly="True" Width="*" Binding="{Binding Discount}"/> 
    <DataGridTextColumn x:Key="NetAmountColumn" Header="Net Amount" IsReadOnly="True" Width="*" Binding="{Binding NetAmount}"/> 
</Window.Resources> 

<DataGrid RowHeaderWidth="0" x:Name="dataGrid" Loaded="DataGrid_Loaded_1" /> 
+4

Önerileriniz için teşekkür ederim ama MVVM kullanıyorum. Bana rehberlik edebilir misiniz, bunu MVVM ile nasıl yapabilirim? – rupareliab

+0

ViewModel'de sütunlar ekleyemezsiniz, çünkü bunun için datagrid başvurusuna gereksiniminiz olacaktır. – ethicallogics

+0

Tamam Farklı bir yolla deneyeceğim. – rupareliab