2011-08-11 2 views
0

비교 같은. myListView에 List 바인딩입니다. 따라서 IsSelected 메서드를 호출하기 위해 someClass 객체를 ListViewItem으로 캐스팅 할 수 없습니다. 즉,이 작동하지 않습니다 :선택 항목이 같은리스트 뷰에서 항목을 선택하기 쉬운 형태 창에서 System.Windows.Forms.ListView

foreach (ListViewItem item in listView1.Items) 
{ 
    item.IsSelected = true; 
} 

항목을 ListViewItem으로 처리 할 수 ​​없기 때문에. 그러면 항목을 어떻게 선택할 수 있습니까? myListView.selectAll() 메서드를 호출하여 모든 항목을 선택할 수 있습니다.

내 listview에서 하나의 개체를 어떻게 선택할 수 있습니까?

답변

4

대부분의 경우 개체의 일부 속성에 선택 영역을 바인딩해야합니다. 예 : 무엇을 참조하면 순서로 사용

_lv.SelectedItems.Clear(); 
_lv.SelectedItems.Add(Data[4]); 
+0

:

foreach (MyClass item in Data) { item.IsSelected = true; } 

당신은 또한 SelectedItems 수집을 조작 할 수 있습니다 :

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)); } } } 

<ListView Name="_lv" ItemsSource="{Binding Data}"> <ListView.ItemContainerStyle> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="IsSelected" Value="{Binding IsSelected}" /> </Style> </ListView.ItemContainerStyle> </ListView> 
그런 다음 항목을 선택하는 코드에서 해당 속성을 설정 PropertyChanged.Notify 메도를 사용 하시겠습니까? System.Activities.Design.dll을 추가하려고 시도하고 있지만 찾을 수없는 것 같습니다. –

+0

@TonoNam : 느슨한 클래스의 확장 메서드입니다. 대신 일반적인 OnPropertyChanged 메서드를 사용하여 대신 이벤트를 발생시킵니다. –

+0

@TonoNam :이 질문에 대한 답변을 편집했습니다 ... –

관련 문제