I have a DataGrid in the C# WPF project and DataGrid's Itemsource fill from the code behind I set a default value for one of my columns but it does not display it until I double click on the column!
also in CellEndEdit I test to change the value of the next column, but it dint show it in real time until I double click it (Click to Edit it)
What have I tried after changing data:
DGR_SUB_INVOLST.Items.Refresh();
DGR_SUB_INVOLST.BeginEdit();
DGR_SUB_INVOLST.CommitEdit();
DGR_SUB_INVOLST.InvalidateVisual();
DGR_SUB_INVOLST.UpdateLayout();
How do I do that :
XAML:
<DataGrid x:Name="DGR_SUB_INVOLST"
EnableColumnVirtualization="True"
EnableRowVirtualization="True"
VirtualizingPanel.IsVirtualizing="True"
VirtualizingPanel.VirtualizationMode="Recycling"
ScrollViewer.CanContentScroll="False"
ItemsSource="{Binding ALL_DATA_INVO, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
AutoGenerateColumns="False" FlowDirection="RightToLeft" CellEditEnding="DGR_SUB_INVOLST_CellEditEnding" SelectionUnit="Cell">
<DataGrid.Columns >
<DataGridTextColumn Header="ردیف" x:Name="RADIF_COL" Binding="{Binding RADIF}" MinWidth="40" Visibility="Hidden"/>
<DataGridComboBoxColumn x:Name="ANBAR_COL" Width="80" Header=" انبار " SelectedValueBinding="{Binding CODE,UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="NAMES" SelectedValuePath="CODE">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="IsEditable" Value="True"/>
<Setter Property="ItemsPanel" Value="{StaticResource VSP}"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
<Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/>
<Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Recycling"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
<DataGridTextColumn Header="نام کالا" x:Name="NAME_COL" Binding="{Binding NAME,UpdateSourceTrigger=PropertyChanged}" Visibility="Visible" MinWidth="180"/>
<DataGridTextColumn Header="کد کالا" x:Name="CODEKALA_COL" Binding="{Binding CODEKALA,UpdateSourceTrigger=PropertyChanged}" Visibility="Hidden" MinWidth="80"/>
</DataGrid.Columns>
</DataGrid>
C#:
private void DGR_SUB_INVOLST_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
if (DGR_SUB_INVOLST != null)
{
if (DGR_SUB_INVOLST.Items.Count > 0)
{
(e.Row.Item as INVOMonitor).CODE = 1;
//Refresh here :
DGR_SUB_INVOLST.Items.Refresh();
DGR_SUB_INVOLST.BeginEdit();
DGR_SUB_INVOLST.CommitEdit();
DGR_SUB_INVOLST.InvalidateVisual();
DGR_SUB_INVOLST.UpdateLayout();
}
}
}
Result: enter image description here in fact the items row is really changed but it didn't show!
non of them work! please guide me