<DataGrid AutoGenerateColumns="False" Grid.Row="1" Grid.Column="3" >>> Height="Auto" >>> HorizontalAlignment="Stretch" >>> Margin="0" >>> Name="grdAirWayBillDetails" >>> VerticalAlignment="Stretch" >>> Width="Auto" >>> IsSynchronizedWithCurrentItem="True" >>> ItemsSource="{Binding Mode=default}" >>> SelectionMode="Single" >>> GridLinesVisibility="None" >>> HeadersVisibility="Column" >>> Grid.ColumnSpan="2" >>> >>> CanUserAddRows="False" >>> CanUserDeleteRows="False" >>> SelectionUnit="Cell" >>> Grid.RowSpan="4"> >>> <DataGrid.Resources> >>> <Style x:Key="AlignRight" TargetType="DataGridCell"> >>> <Setter Property="HorizontalAlignment" Value="Right" /> >>> >>> </Style> >>> <Style x:Key="AlignRightHeader" TargetType="DataGridColumnHeader"> >>> <Setter Property="HorizontalAlignment" Value="Right" /> >>> </Style> </DataGrid.Resources> >>> <DataGrid.Columns> >>> <DataGridComboBoxColumn Header="Charge Type" Width="2*" >>> DisplayMemberPath="cty_name" >>> SelectedValuePath="cty_pk" >>> SelectedValueBinding="{Binding awd_ctyfk, Mode=Default}"/> >>> >>> <DataGridTextColumn Header="Amount" Width="*" Binding="{Binding awd_amount, Mode=default}" >>> CellStyle="{StaticResource AlignRight}" >>> HeaderStyle="{StaticResource AlignRightHeader}"/> >>> </DataGrid.Columns> >>> </DataGrid>>>>
private void AddDetailRow() >>> { >>> AirWayBillDetailEntity entity = this.AirWayBillDetail.NewEntity(new AirWayBillDetailDefaults(this.AirWayBill.Entity.awb_pk)); >>> >>> // Select cell and begin edit >>> this.grdAirWayBillDetails.CommitEdit(); >>> >>> this.grdAirWayBillDetails.Focus(); >>> System.Windows.Controls.DataGridCellInfo cellInfo = new System.Windows.Controls.DataGridCellInfo(entity, this.grdAirWayBillDetails.Columns[0]); >>> this.grdAirWayBillDetails.SelectedCells.Clear(); >>> this.grdAirWayBillDetails.SelectedCells.Add(cellInfo); >>> this.grdAirWayBillDetails.CurrentCell = cellInfo; >>> this.grdAirWayBillDetails.BeginEdit(); >>> }>>>
void AirWayBillDetail_StateChange(mmBaseBusinessObject bizObj, mmBusinessStateChangeEventArgs e) >>> { >>> if (e.State == mmBusinessState.Retrieved) >>> { >>> // Store the Air WayBill Detail in the DataGrid's data context >>> this.grdAirWayBillDetails.DataContext = this.AirWayBillDetail.EntityList; >>> >>> // Hide the new item row place holder in the Air WayBill Detail DataGrid >>> ((IEditableCollectionView)CollectionViewSource.GetDefaultView(grdAirWayBillDetails.ItemsSource)).NewItemPlaceholderPosition = >>> NewItemPlaceholderPosition.None; >>> } >>> //this.ShowAirWayBillTotal(); >>> if (this.AirWayBillDetail.EntityList != null) >>> { >>> this.AirWayBillTotal = this.AirWayBillDetail.EntityList.Sum(x => x.awd_amount); >>> foreach (var c in this.AirWayBillDetail.EntityList) >>> { >>> c.PropertyChanged += CollectionItemChanged; >>> } >>> } >>> >>> }>>>
void CollectionItemChanged(object sender, PropertyChangedEventArgs e) >>> { >>> if (e.PropertyName == "awd_amount") >>> { >>> AirWayBillTotal = AirWayBillDetail.EntityList.Sum(x => x.awd_amount); >>> OnPropertyChanged("AirWayBillTotal"); >>> AddDetailRow(); >>> } >>> }>>>