[英]How to keep other items selected in System.Windows.Forms.ListView when deselecting one item
[英]select item in System.Windows.Controls.ListView compared to System.Windows.Forms.ListView
在 windows forms 中,很容易将列表视图中的 select 项目设置为:
myListView.items[index].selected = True;
在 wpf 上是不一样的。 我将一个列表绑定到 myListView。 因此,我无法将 someClass object 转换为 ListViewItem 以调用 IsSelected 方法。 换句话说,这不起作用:
foreach (ListViewItem item in listView1.Items)
{
item.IsSelected = true;
}
因为 item 不能被视为 ListViewItem。 我怎么能 select 项目呢? 我可以通过调用 myListView.selectAll() 方法来 select 所有项目。
如何以编程方式在我的列表视图上 select 单个 object 。
在大多数情况下,您应该将选择绑定到 object 上的某些属性。 例如
<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));
}
}
}
然后在代码中设置该属性将 select 项目:
foreach (MyClass item in Data)
{
item.IsSelected = true;
}
您还可以操作SelectedItems
集合:
_lv.SelectedItems.Clear();
_lv.SelectedItems.Add(Data[4]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.