[英]c# WPF - Add total row in a DataGrid
我有這個DataGrid:
我想在DataGrid的底部添加一行,該行包含Name:Total和Price:所有價格的總和。 如果有可能,該行將被凍結。 你有什么想法? 簡單的項目在此鏈接中: 此處
編輯1這是XAML代碼:
<DataGrid ItemsSource="{Binding Articles}" AutoGenerateColumns="False" HorizontalAlignment="Left" CanUserAddRows="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Price" Binding="{Binding Price}" />
</DataGrid.Columns>
</DataGrid>
這是ViewModel:
[Export(typeof(IShell))]
public class MainViewModel : Screen
{
public System.ComponentModel.ICollectionView Articles { get; set; }
public MainViewModel()
{
Articles = CollectionViewSource.GetDefaultView(GetArticles());
}
private List<Article> GetArticles()
{
List<Article> arts = new List<Article>();
arts.Add(new Article { Name = "Name1", Price = 2.80 });
arts.Add(new Article { Name = "Name2", Price = 1.25 });
arts.Add(new Article { Name = "Name3", Price = 9.32 });
arts.Add(new Article { Name = "Name4", Price = 1.31 });
arts.Add(new Article { Name = "Name5", Price = 0.80});
arts.Add(new Article { Name = "Name6", Price = 2.50});
arts.Add(new Article { Name = "Name7", Price = 0.50 });
return arts;
}
}
您可以在數據網格下方添加一個文本塊,然后將其綁定到具有總價的屬性,而不是在數據網格中添加最后一行。
這應該是有幫助的。我只添加了一個新行,並帶有求和方法
private List<Article> GetArticles()
{
List<Article> arts = new List<Article>();
arts.Add(new Article { Name = "Name1", Price = 2.80 });
arts.Add(new Article { Name = "Name2", Price = 1.25 });
arts.Add(new Article { Name = "Name3", Price = 9.32 });
arts.Add(new Article { Name = "Name4", Price = 1.31 });
arts.Add(new Article { Name = "Name5", Price = 0.80 });
arts.Add(new Article { Name = "Name6", Price = 2.50 });
arts.Add(new Article { Name = "Name7", Price = 0.50 });
arts.Add(new Article {Name = "Total", Price = GetTotal(arts)});
return arts;
}
private double GetTotal(List<Article> arts)
{
double Total = 0;
foreach (Article art in arts)
{
Total += double.Parse(art.Price.ToString());
}
return Total;
}
問候
多一個:
private List<Article> GetArticles()
{
List<Article> arts = new List<Article>();
arts.Add(new Article { Name = "Name1", Price = 2.80 });
arts.Add(new Article { Name = "Name2", Price = 1.25 });
arts.Add(new Article { Name = "Name3", Price = 9.32 });
arts.Add(new Article { Name = "Name4", Price = 1.31 });
arts.Add(new Article { Name = "Name5", Price = 0.80 });
arts.Add(new Article { Name = "Name6", Price = 2.50 });
arts.Add(new Article { Name = "Name7", Price = 0.50 });
arts.Add(new Article { Name = "Total", Price = arts.Sum(l => l.Price)});
return arts;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.