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