Select item programmatically in WPF ListView Select item programmatically in WPF ListView wpf wpf

Select item programmatically in WPF ListView


Bind the IsSelected property of the ListViewItem to a property on your model. Then, you need only work with your model rather than worrying about the intricacies of the UI, which includes potential hazards around container virtualization.

For example:

<ListView>    <ListView.ItemContainerStyle>        <Style TargetType="ListViewItem">            <Setter Property="IsSelected" Value="{Binding IsGroovy}"/>        </Style>    </ListView.ItemContainerStyle></ListView>

Now, just work with your model's IsGroovy property to select/deselect items in the ListView.


Where 'this' is the ListView instance. This will not only change the selection, but also set the focus on the newly selected item.

  private void MoveSelection(int level)  {     var newIndex = this.SelectedIndex + level;     if (newIndex >= 0 && newIndex < this.Items.Count)     {        this.SelectedItem = this.Items[newIndex];        this.UpdateLayout();        ((ListViewItem)this.ItemContainerGenerator.ContainerFromIndex(newIndex)).Focus();     }  }


Here would be my best guess, which would be a much simpler method for selection. Since I'm not sure what you're selecting on, here's a generic example:

var indices = new List<int>();for(int i = 0; i < lstVariable_All.Items.Count; i++){  // If this item meets our selection criteria   if( lstVariable_All.Items[i].Text.Contains("foo") )    indices.Add(i);}// Reset the selection and add the new items.lstVariable_All.SelectedIndices.Clear();foreach(int index in indices){  lstVariable_All.SelectedIndices.Add(index);}

What I'm used to seeing is a settable SelectedItem, but I see you can't set or add to this, but hopefully this method works as a replacement.