I am trying to figure out what is the best way to calculate a total value of DataGrid column in wpf, I´m using dataset to display data from SQL server in my Resources(DataTemplate) & bind it to datagrid like below:
DataTemplate:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="AgamistaStore.Resources.DataTemplatesClass" xmlns:myClasses="clr-namespace:AgamistaStore.Classes"><myClasses:TablesStateConverter x:Key="TablesStateConverter"/><myClasses:OrderItemNotEditableStateConverter x:Key="NotEditableStateConverter"/><!-- ProductName column --><DataTemplate x:Key="NotEditableStateColumnTemplate"><Image Height="20" Width="20" Source="{Binding Path=NotEditable, Converter={StaticResource NotEditableStateConverter}, Mode=Default}" HorizontalAlignment="Stretch"/></DataTemplate><!-- Barcode column --><DataTemplate x:Key="ProductBarcodeColumnTemplate"><TextBlock FontFamily="Tahoma" FontSize="14" Text="{Binding Path=ProductBarcode}" HorizontalAlignment="Stretch" Foreground="#FF44544A" /></DataTemplate><!-- ProductName column --><DataTemplate x:Key="ProdNameColumnTemplate"><TextBlock FontFamily="Tahoma" FontSize="14" Text="{Binding Path=ProductName}" HorizontalAlignment="Stretch" Foreground="#FF44544A"/></DataTemplate><!-- Price column --><DataTemplate x:Key="PriceNameColumnTemplate"><TextBlock x:Name="SalePrice" FontFamily="Tahoma" FontSize="14" HorizontalAlignment="Stretch" Text="{Binding Path=SalePrice, StringFormat={}{0:#.##}}" Foreground="#FF44544A"/></DataTemplate><!-- Quntity column --><DataTemplate x:Key="QuntityColumnTemplate"><TextBox x:Name="txtQuntity" Tag="{Binding}" PreviewTextInput="txtQuntity_PreviewTextInput" Style="{StaticResource TextBoxStyle}" Height="20" Foreground="#FF0A421F" FontFamily="Tahoma" FontSize="14" Text="{Binding Path=SoldQuantity}" HorizontalAlignment="Stretch"/></DataTemplate></ResourceDictionary>
MainWindow:
<Border Grid.Column="1" CornerRadius="6,6,6,6" BorderThickness="1,1,1,1" BorderBrush="#FFBCC7BB" Margin="9,10,8,10" x:Name="borderDetails"><Grid HorizontalAlignment="Left" Width="439" Margin="0,0,0,0" VerticalAlignment="Top" Height="397" Visibility="Visible"><Grid.RowDefinitions><RowDefinition Height="352*" /><RowDefinition Height="45*" /></Grid.RowDefinitions><!--bill details --><myClasses:SortableListView Margin="9,6,6,0" Height="auto" BorderBrush="{x:Null}" Background="{x:Null}" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" AllowDrop="True" VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True" SelectionMode="Single" IsSynchronizedWithCurrentItem="True" ItemContainerStyle="{DynamicResource RestaurantEditListViewItemStyle}" Style="{DynamicResource RestaurantEditListViewStyle}" IsEnabled="True" HorizontalAlignment="Stretch" VerticalAlignment="Top" x:Name="gvOrderDetails" ><myClasses:SortableListView.View><GridView AllowsColumnReorder="False" ><GridViewColumn Width="4" HeaderContainerStyle="{DynamicResource FirstColumnGridViewColumnHeader}" CellTemplate="{StaticResource EmptyColumnTemplate}"/><GridViewColumn Width="8" CellTemplate="{StaticResource NotEditableStateColumnTemplate}" HeaderContainerStyle="{DynamicResource RestaurantDataGridViewColumnHeader}"/><myClasses:SortListViewColumn Header="كود الصنف" SortProperty="ProductBarcode" Width="80" CellTemplate="{StaticResource ProductBarcodeColumnTemplate}" SortStyle="RestaurantDataGridViewColumnHeader" HeaderContainerStyle="{DynamicResource RestaurantDataGridViewColumnHeader}" /><myClasses:SortListViewColumn Header="اسـم الـصـنـف" SortProperty="ProductName" Width="200" CellTemplate="{StaticResource ProdNameColumnTemplate}" SortStyle="RestaurantDataGridViewColumnHeader" HeaderContainerStyle="{DynamicResource RestaurantDataGridViewColumnHeader}" /><myClasses:SortListViewColumn Header="السعر" SortProperty="SalePrice" CellTemplate="{StaticResource PriceNameColumnTemplate}" Width="60" SortStyle="RestaurantDataGridViewColumnHeader" HeaderContainerStyle="{DynamicResource RestaurantDataGridViewColumnHeader}" /><myClasses:SortListViewColumn Header="الكمية" SortProperty="UnitName" Width="50" CellTemplate="{StaticResource QuntityColumnTemplate}" SortStyle="RestaurantDataGridViewColumnHeader" HeaderContainerStyle="{DynamicResource RestaurantDataGridViewColumnHeader}"/><GridViewColumn Width="4" CellTemplate="{StaticResource EmptyColumnTemplate}" HeaderContainerStyle="{DynamicResource LastColumnGridViewColumnHeader}"/></GridView></myClasses:SortableListView.View></myClasses:SortableListView>
Now I want to get the total sum (which is sum(SalePrice*SoldQuantity) to display in textbox, And SoldQuantity value can changed by user
What is the best practice to do this ?
Thanks,