В большинстве случаев вы должны привязать выделение к какому-либо свойству вашего объекта. например,
<ListView Name="_lv" ItemsSource="{Binding Data}">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
class MyClass : INotifyPropertyChanged
{
private bool _IsSelected = false;
public bool IsSelected
{
get { return _IsSelected; }
set
{
if (_IsSelected != value)
{
_IsSelected = value;
OnPropertyChanged("IsSelected");
}
}
}
//...
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Затем, установив это свойство в коде, вы выберете элемент:
foreach (MyClass item in Data)
{
item.IsSelected = true;
}
Вы также можете манипулировать коллекцией SelectedItems
:
_lv.SelectedItems.Clear();
_lv.SelectedItems.Add(Data[4]);