I am trying to change the AllowEditing property using the selecteditem of the combobox.
<Syncfusion:SfDataGrid x:Name="dataGrid" ItemsSource="{Binding Steps}"
EditTrigger="OnTap" VerticalAlignment="Stretch" AutoGenerateColumns="False" AddNewRowPosition="Bottom">
<Syncfusion:SfDataGrid.Columns>
<Syncfusion:GridComboBoxColumn HeaderText="Action" ItemsSource="{Binding Path=ActionList}" DisplayMemberPath="Name" MappingName="SelectedAction" AllowEditing="True"/>
<Syncfusion:GridTextColumn HeaderText="Origine" MappingName="Origin" AllowEditing="{Binding Path=SelectedAction.OriginEditable}" Width="150"/>
<Syncfusion:GridTextColumn HeaderText="Destination" MappingName="Destination" AllowEditing="{Binding Path=SelectedAction.DestinationEditable }" Width="150"/>
<Syncfusion:GridTextColumn x:Name="origin" HeaderText="OriginEditable" MappingName="SelectedAction.OriginEditable" Width="50"/>
<Syncfusion:GridTextColumn HeaderText="DestinationEditable" MappingName="SelectedAction.DestinationEditable" Width="50"/>
</Syncfusion:SfDataGrid.Columns>
</Syncfusion:SfDataGrid>For example when the property SelectedAction.OriginEditable is true i want the cell displaying the origin to be editable and when false the cell should not be editable.
For any reason my binding for AllowEditing is not working.
Attachment: DatagridGridTextColumnReadonly_56b65d8e.zip
|
private void DataGrid_CurrentCellBeginEdit(object sender, Syncfusion.UI.Xaml.Grid.CurrentCellBeginEditEventArgs e)
{
if(e.Column.MappingName == "Origin")
{
var record = this.dataGrid.RowGenerator.Items.FirstOrDefault(x => x.RowIndex == e.RowColumnIndex.RowIndex).RowData as StepViewModel;
e.Cancel = !record.SelectedAction.DestinationEditable;
}
} |
Yes this is what i need !
Thank you !