This question is locked. New answers and comments are not allowed.
Hi all
I want to implement custom deleting of Entity using RadDomainDataSource and RadGridView:
I want to implement custom deleting of Entity using RadDomainDataSource and RadGridView:
<telerik:RadDomainDataSource Name="OrganizerDomainDataSource" AutoLoad="False" Height="0" Width="0" DomainContext="{StaticResource OrganizerDomainContext}" QueryName="GetLocationSetQuery" PageSize="1000" LoadedData="OrganizerDomainDataSource_LoadedData" SubmittedChanges="OrganizerDomainDataSource_SubmittedChanges"> </telerik:RadDomainDataSource><telerik:RadGridView Name="LocationDataGrid" AutoGenerateColumns="False" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=DataView, ElementName=OrganizerDomainDataSource}" RowDetailsVisibilityMode="VisibleWhenSelected" RowIndicatorVisibility="Collapsed" AlternationCount="2" IsEnabled="{Binding Path=Parent.HasChanges, ElementName=LayoutRoot, Converter={StaticResource NotOperatorValueConverter}}" IsReadOnly="True" ShowGroupPanel="False" IsFilteringAllowed="True" SelectionMode="Single" SelectionUnit="FullRow"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=Name}" TextAlignment="Left" HeaderTextAlignment="Left" Header="{Binding Path=LocationPage_LocationDataGrid_Header_Name, Source={StaticResource PageResources}}" Width="SizeToCells" IsFilterable="True" ShowDistinctFilters="False" ShowFieldFilters="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=City}" Header="{Binding Path=LocationPage_LocationDataGrid_Header_City, Source={StaticResource PageResources}}" Width="SizeToCells" IsFilterable="True" ShowDistinctFilters="False" ShowFieldFilters="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=OrganisationPath}" Header="{Binding Path=LocationPage_LocationDataGrid_Header_CompanyPath, Source={StaticResource PageResources}}" Width="*" IsFilterable="True" ShowDistinctFilters="False" ShowFieldFilters="True"/> <telerik:GridViewDataColumn DataMemberBinding="{Binding Path=RoomSet.Count}" TextAlignment="Right" HeaderTextAlignment="Right" Header="{Binding Path=LocationPage_LocationDataGrid_Header_RoomNumber, Source={StaticResource PageResources}}" Width="SizeToHeader" IsFilterable="True" ShowDistinctFilters="False" ShowFieldFilters="True"/> <telerik:GridViewDataColumn x:Name="functionColumn" Header="{Binding Path=LocationPage_LocationDataGrid_Header_Functions, Source={StaticResource PageResources}}" Width="SizeToHeader"> <telerik:GridViewDataColumn.CellTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Style="{StaticResource ImageButtonStyle}" Click="DeleteItemButton_Click" CommandParameter="{Binding Path=LocationId}"> <Image Source="../../Assets/Images/Icons/btn_delete.png"/> <ToolTipService.ToolTip> <ToolTip Content="{Binding Path=LocationPage_LocationDataGrid_Function_Tooltip_Delete, Source={StaticResource PageResources}}"></ToolTip> </ToolTipService.ToolTip> </Button> </StackPanel> </DataTemplate> </telerik:GridViewDataColumn.CellTemplate> </telerik:GridViewDataColumn> </telerik:RadGridView.Columns> </telerik:RadGridView>In code behind I implemented DeleteButton handler:
/// <summary> /// delete selected location /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DeleteItemButton_Click(object sender, RoutedEventArgs e) { var itemId = (Guid)((Button)sender).CommandParameter; var location = GetLocationFromDataSource(itemId); if (location != null) { // ClxMessageBox: are you sure? var msgBoxDeleting = new ClxMessageBox(ClxMessageBoxType.YesNo) { Title = GlobalResources.MsgBoxDeleting_Title, Message = string.Format(GlobalResources.MsgBoxDeleting_Message, location.Name + "(" + location.OrganisationPath + ")") }; msgBoxDeleting.ShowDialog(result => { if (result) { LocationDataGrid.Items.Remove(location); OrganizerDomainDataSource.SubmitChanges(); } }); } }I did not find a way to remove selected Location directly from OrganizerDomainDataSource so I removed it from LocationDataGrid.
This implementation actually works.
Only question is: is there a better solution for removing Entity from RadDomainDataSource then this one:
LocationDataGrid.Items.Remove(location); OrganizerDomainDataSource.SubmitChanges();Regards,
Dekos