【发布时间】:2021-12-29 09:13:26
【问题描述】:
我在数据库中有以下可用的示例数据
SrNo |字符串
1 |数据1
2 |数据2
3 |数据3
4 |数据2
5 |数据1
字符串列值可以重复。用户也可以使用 wxSearchCtrl 过滤 wxDataViewListCtrl 中显示的数据,因此 wxDataViewListCtrl 中显示的 ID 号可能会根据用户使用的过滤器而改变。
https://docs.wxwidgets.org/3.0/classwx_data_view_list_ctrl.html
使用上面链接中显示的示例,使用 while 循环将数据库中的数据插入 listctrl。示例代码如下。
wxDataViewListCtrl *listctrl = new wxDataViewListCtrl( parent, wxID_ANY );
listctrl->AppendTextColumn( "String Data" );
wxVector<wxVariant> data;
data.push_back( wxVariant("Data1") );
listctrl->AppendItem( data );
data.clear();
data.push_back( wxVariant("Data2") );
listctrl->AppendItem( data );
如何获取选定行的 SrNo?在下面的代码中?我需要使用 wxDataViewModel 吗?我没有找到任何相同的例子
if(listctrl->GetSelectedRow() != wxNOT_FOUND){
wxLogMessage("Select Item Id: %i -",listctrl->RowToItem(listctrl->GetSelectedRow()).GetID() );
}else{
wxMessageBox("Please Select row", strappName,wxICON_INFORMATION|wxCLOSE);
}
尝试了下面的示例代码,但它因分段错误而崩溃。寻找示例代码
listctrl->SetItemData(wxDataViewItem (reinterpret_cast<void *>(iRowCount)),std::stoi(SrNo))
【问题讨论】: