I need to be notified every time my value in a column changes. But it invokes PropertyChanged only after I unfocus/unselected the cell I was editing. I've tried your grid view example
https://docs.telerik.com/devtools/wpf/controls/radgridview/getting-started/getting-started2 and it has the same functionality even if I'm setting Mode=TwoWay, UpdateSourceTrigger=PropertyChanged it still triggers ProperyChanged only after I make changes and unselect the current cell. I want to trigger the notify event every time I change.
My grid view:
<telerik:RadGridView x:Name="IdentityProvidersGridView"
ItemsSource="{Binding IdentityProviders}"
SelectedItem="{Binding SelectedIdentityProvider}"
Visibility="{Binding IsChecked, ElementName=EnableTokenValidation, Converter={StaticResource BoolToVis}}"
SelectionMode="Single"
ShowGroupPanel="False"
NewRowPosition="Bottom"
GroupRenderMode="Flat"
CanUserInsertRows="True"
AutoGenerateColumns="False"
CanUserReorderColumns="False"
RowIndicatorVisibility="Collapsed"
AddingNewDataItem="AddIdentityProviderItem"
PreviewKeyDown="DataGrid_PreviewKeyDown"
Margin="0,10,0,10" Grid.Row="10">
<telerik:RadGridView.Columns>
<telerik:GridViewCheckBoxColumn Header="Enable"
EditTriggers="CellClick"
AutoSelectOnEdit="True"
Width="Auto"
DataMemberBinding="{Binding EnableProvider, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<telerik:GridViewCheckBoxColumn.CellStyle>
<Style TargetType="telerik:GridViewCell" BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</telerik:GridViewCheckBoxColumn.CellStyle>
</telerik:GridViewCheckBoxColumn>
<telerik:GridViewDataColumn Header="Internal provider ID"
DataMemberBinding="{Binding ProviderId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
EditTriggers="CellClick" Width="Auto"/>
<telerik:GridViewDataColumn x:Name="InternalProviderLabelColumn" Header="Internal provider label"
DataMemberBinding="{Binding SchemeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"
EditTriggers="CellClick" Width="Auto"/>
<telerik:GridViewDataColumn Header="Token provider URL"
DataMemberBinding="{Binding Issuer, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
EditTriggers="CellClick" Width="*"/>
<telerik:GridViewDataColumn Header="Actions" Width="Auto">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<telerik:RadButton Content="X" Click="DeleteIdentityProvider_Click"
CommandParameter="{Binding}" Width="50" HorizontalAlignment="Center"/>
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
private void OnProviderPropertyChanged(object sender, PropertyChangedEventArgs e)
{
MarkDirtyIfStateChanged();
}
public class IdentityProvider : INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
<telerik:RadGridView x:Name="IdentityProvidersGridView"
ItemsSource="{Binding IdentityProviders}"
SelectedItem="{Binding SelectedIdentityProvider}"
Visibility="{Binding IsChecked, ElementName=EnableTokenValidation, Converter={StaticResource BoolToVis}}"
SelectionMode="Single"
ShowGroupPanel="False"
NewRowPosition="Bottom"
GroupRenderMode="Flat"
CanUserInsertRows="True"
AutoGenerateColumns="False"
CanUserReorderColumns="False"
RowIndicatorVisibility="Collapsed"
AddingNewDataItem="AddIdentityProviderItem"
PreviewKeyDown="DataGrid_PreviewKeyDown"
Margin="0,10,0,10" Grid.Row="10">
<telerik:GridViewDataColumn x:Name="InternalProviderLabelColumn" Header="Internal provider label"
DataMemberBinding="{Binding SchemeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
EditTriggers="CellClick" Width="Auto">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding SchemeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>
How can I use the checkbox in my grid and click only one time to check/uncheck I need to select an item which checkbox I'm currently checking/unchecking(same functionality as for textbox in cellEditTemplate)
<telerik:GridViewCheckBoxColumn Header="Enable"
DataMemberBinding="{Binding EnableProvider, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
EditTriggers="CellClick" Width="Auto">
<telerik:GridViewCheckBoxColumn.CellEditTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding EnableProvider, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</telerik:GridViewCheckBoxColumn.CellEditTemplate>
<telerik:GridViewCheckBoxColumn.CellStyle>
<Style TargetType="telerik:GridViewCell" BasedOn="{StaticResource GridViewCellStyle}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</telerik:GridViewCheckBoxColumn.CellStyle>
</telerik:GridViewCheckBoxColumn>