I am working with DataGrid with, in which i am binding the Observable collection to data. and when i double click on grid cell, and type something in grid cell, then all rows in data grid for current cell getting updated with entered text:
please review below code:
when i double clicked on Barcode column and start typing then all rows in grid. getting update the barcode column data.
What I have tried:
<DataGrid MaxHeight="200" Name="GridAssetSubclass" RowHeight="{x:Static sys:Double.NaN}"
Style="{StaticResource datagrid-default}"
ItemsSource="{Binding RecoveryItems}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding AssetClassID, Mode=TwoWay}" IsReadOnly="true" HeaderStyle="{StaticResource data-grid-column-header}"></DataGridTextColumn>
<DataGridTextColumn Header="SKU" Binding="{Binding SKU, Mode=TwoWay}" IsReadOnly="true" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
<!--<Setter Property="IsEnabled" Value="{Binding Enabled}" />-->
<Setter Property="BorderThickness" Value="0" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Grade" Binding="{Binding GradeID}" IsReadOnly="True" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Pallet" Binding="{Binding Pallet}" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Barcode" Binding="{Binding ItemBarcode,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Serial" Binding="{Binding SerialNbr}" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Asset" Binding="{Binding AssetTag}" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn MaxWidth="100" Header="Action Audit" HeaderStyle="{StaticResource data-grid-column-header}" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<Button Content="Audit" Style="{StaticResource btn-Action-Audit}" Command="{Binding Path=DataContext.HardkillFlyoutCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding ItemBarcode}"></Button>
</DockPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn MaxWidth="100" Header="Action Grading" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<Button Content="Grading" Style="{StaticResource btn-Action-Grading}" Command="{Binding Path=DataContext.HarvestFlyoutCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding ItemBarcode}" ></Button>
</DockPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Comment" Binding="{Binding GradingCommentValue}" HeaderStyle="{StaticResource data-grid-column-header}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Margin" Value="3,0"/>
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.TextAlignment" Value="Left"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
<!--<i:Interaction.Triggers>
<i:EventTrigger EventName="CellEditEnding">
<cmd:EventToCommand Command="{Binding CellEditEndingCommand}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>-->
</DataGrid>