+ sel.Empty();
+ wxDataViewSelection selection = m_clientArea->GetSelections();
+ int len = selection.GetCount();
+ for( int i = 0; i < len; i ++)
+ {
+ unsigned int row = selection[i];
+ sel.Add( row );
+ }
+ return len;
+}
+
+void wxDataViewCtrl::SetSelections( const wxArrayInt & sel )
+{
+ wxDataViewSelection selection(wxDataViewSelectionCmp) ;
+ int len = sel.GetCount();
+ for( int i = 0; i < len; i ++ )
+ {
+ int row = sel[i];
+ if( row >= 0 )
+ selection.Add( static_cast<unsigned int>(row) );
+ }
+ m_clientArea->SetSelections( selection );
+}
+
+void wxDataViewCtrl::Select( int row )
+{
+ if( row >= 0 )
+ m_clientArea->SelectRow( row, true );
+}
+
+void wxDataViewCtrl::Unselect( int row )
+{
+ if( row >= 0 )
+ m_clientArea->SelectRow(row, false);
+}