与System.Windows.Forms.ListView比较,选择System.Windows.Controls.L
本文关键字:System Windows 选择 Controls ListView Forms 比较 | 更新日期: 2023-09-27 18:05:26
在windows窗体中,很容易从列表视图中选择一个项目:
myListView.items[index].selected = True;
在WPF上是不一样的。我将一个列表绑定到myListView。因此,为了调用IsSelected方法,我无法将someClass对象强制转换为ListViewItem。换句话说,这行不通:
foreach (ListViewItem item in listView1.Items)
{
item.IsSelected = true;
}
,因为item不能作为ListViewItem来处理。那么我该如何选择项目呢?我可以通过调用myListView.selectAll()方法来选择所有的项目。
我如何以编程方式在我的listview上选择单个对象。
在大多数情况下,您应该将选择绑定到对象的某些属性。例如
<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]);