How to Implement Multiselect in WPF RadGridView without any codebehind

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>

Setting Up Kafka

Apache Kafka is a high-throughput, low-latency event processing system designed to handle millions of data feeds per second. It has the c...… Continue reading

Libish Varghese Jacob

Libish Varghese JacobI am a lead engineer at a prominent wind turbine manufacturing firm. My interests span a diverse range, and immersing myself in technology is one of them. This platform serves as my primary knowledge base, where I seek information and insights. Moreover, I utilize this platform to share my experiences and experiments, hoping they may benefit those following a similar path. It's important to note that the suggestions I express here are based on my best knowledge at the time of writing and may not necessarily represent the optimal solutions. I wholeheartedly welcome any comments you may have to improve or refine my ideas. Your feedback is greatly appreciated and valued.