2 Answers, 1 is accepted
0
Rahul
Top achievements
Rank 1
answered on 30 Mar 2011, 10:50 AM
Hi,
I want to add more information about GridRow Deletion.
I need to delete multiple rows from datagrid.
I tried using a SelectedItem, but i guess it works for single row selection.
How we can delete a muliple rows,attcahed a Row DetailsTemplate.
Please help.Attcched a Code snipets.
View: <Grid> <StackPanel> <StackPanel> <StackPanel Orientation="Horizontal"> <Label Content="Enter Name"/> <TextBox Height="25" Width="200" Background="AliceBlue" Text="{Binding Name}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <Label Content="Enter Age"/> <TextBox Height="25" Width="200" Background="AliceBlue" Text="{Binding Age}"/> </StackPanel> </StackPanel> <telerik:RadGridView Grid.Row="2" x:Name="orderView" ItemsSource="{Binding Order}" AutoGenerateColumns="False" IsReadOnly="False" SelectedItem="{Binding SelectedOrder}" > <telerik:RadGridView.Columns> <telerik:GridViewToggleRowDetailsColumn /> <telerik:GridViewSelectColumn Header="Select" x:Name="chkbox" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding CustomerName}" Header="Name" /> <telerik:GridViewDataColumn DataMemberBinding="{Binding Age}" Header="Age" /> </telerik:RadGridView.Columns> <telerik:RadGridView.RowDetailsTemplate > <DataTemplate > <StackPanel > <StackPanel Orientation="Horizontal"> <Label Content="Enter Name"/> <TextBox Height="25" Width="200" Background="AliceBlue" Text="{Binding CustomerName}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <Label Content="Enter Age"/> <TextBox Height="25" Width="200" Background="AliceBlue" Text="{Binding Age}"/> </StackPanel> </StackPanel> </DataTemplate> </telerik:RadGridView.RowDetailsTemplate> </telerik:RadGridView> <StackPanel Orientation="Horizontal"> <Button Height="25" Width="80" Content="Add Order"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <cmd:EventToCommand Command="{Binding Path=AddOrderClickCommand}" PassEventArgsToCommand="True" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> <Button Height="25" Width="80" Content="Delete Order" Click="Button_Click"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <cmd:EventToCommand Command="{Binding Path=DeleteOrderClickCommand}" PassEventArgsToCommand="True" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> </StackPanel> </StackPanel> </Grid> ViewModel: class GridViewModel : NotificationObject,INotifyPropertyChanged { //ObservableCollection<CustomerOrder> _order; public GridViewModel() { //_order = new ObservableCollection<CustomerOrder>(); } CustomerOrder cust = new CustomerOrder(); public string Name { get { return cust.CustomerName; } set { cust.CustomerName = value; OnPropertyChanged("Name"); } } public int Age { get { return cust.Age; } set { cust.Age = value; OnPropertyChanged("Age"); } } public ObservableCollection<CustomerOrder> Order { get { return cust.Orders; } } private RelayCommand<RoutedEventArgs> _addOrderClickCommand; public RelayCommand<RoutedEventArgs> AddOrderClickCommand { get { if (_addOrderClickCommand == null) { _addOrderClickCommand = new RelayCommand<RoutedEventArgs>(param => this.AddOrder(param)); } return _addOrderClickCommand; } } private void AddOrder(RoutedEventArgs e) { Order.Add(new CustomerOrder() { CustomerName = cust.CustomerName, Age = cust.Age }); SelectedOrder = Order[Order.Count-1]; } private CustomerOrder _SelectedOrder; public CustomerOrder SelectedOrder { get { return _SelectedOrder; } set { _SelectedOrder = value; OnPropertyChanged("SelectedOrder"); } } private RelayCommand<RoutedEventArgs> _deleteOrderClickCommand; public RelayCommand<RoutedEventArgs> DeleteOrderClickCommand { get { if (_deleteOrderClickCommand == null) { _deleteOrderClickCommand = new RelayCommand<RoutedEventArgs>(param => this.DeleteOrder(param)); } return _deleteOrderClickCommand; } } private void DeleteOrder(RoutedEventArgs e) { } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } } Model: public class CustomerOrder { private string _customerName; public string CustomerName { get { return _customerName; } set { _customerName = value; } } private int _age; public int Age { get { return _age; } set { _age = value; } } ObservableCollection<CustomerOrder> _orders = new ObservableCollection<CustomerOrder>(); public ObservableCollection<CustomerOrder> Orders { get { return _orders; } set { _orders = value; } } } 0
Accepted
