Sunday 13 April 2014


Share/Bookmark
Issue:

You can achieve this with the help of Behavior in WPF. Create one multiselect behavior and attach it to RadGridView. This way you can avoid any code behind code altogether and can implement multiselect in proper MVVM way.


How did I fix it:

Create a property of type ObservableCollection in your ViewModel like as shown below.

public ObservableCollection<object> SelectedItems { get; set; }


Now create a MultiselectBehavior as shown below. You have to add reference to System.Windows.Interactivity.dll

public class MultiSelectBehavior : Behavior<radgridview>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            ((YourViewModel)this.AssociatedObject.DataContext).SelectedItems = this.AssociatedObject.SelectedItems;
        }
    }

Now add this behavior to RadGridView as shown below. Also don't forget to make selectionmode="Extended". This will help you to select row by pressing ctrl key.

<telerik:radgridview itemssource="{Binding AvailableSignals, Mode=TwoWay}"  SelectionMode="Extended">
      <telerik:radgridview.columns>
         <telerik:gridviewdatacolumn>
      </telerik:gridviewdatacolumn></telerik:radgridview.columns>
      <i:interaction.behaviors>
          <multiselect:multiselectbehavior>
      </multiselect:multiselectbehavior></i:interaction.behaviors>
 </telerik:radgridview>


Categories: , ,

0 comments:

Post a Comment

Dear reader, Your comment is always appreciated. I will reply to your queries as soon as possible.

1. Make sure to click on the Subscribe By Email link to be notified of follow up comments and replies. Or you can use Subscribe to: Post Comments (Atom) link.
2. Only English comments shall be approved.
3. Please make your comments self-explanatory. Comment in such a way that it explains the comment so that a counter question can be avoided and can be replied with proper answer on the first go.