C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码

C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码,第1张

string str = thislistView1Items[currentIndex]Text;

//或

string str = thislistView1Items[currentIndex]SubItems[0]Text;

import QtQuick 21

import QtQuickWindow 21

import QtQuickControls 12

Window {

visible: true

width: 360

height: 360

Rectangle {

width: 200; height: 200

ListModel {

id: fruitModel

property string language: "en"

ListElement {

name: "Apple"

cost: 245

}

ListElement {

name: "Orange"

cost: 325

}

ListElement {

name: "Banana"

cost: 195

}

}

ListModel {

id: fruitModel2

property string language: "en"

ListElement {

name: "A"

cost: 245

}

ListElement {

name: "B"

cost: 325

}

ListElement {

name: "C"

cost: 195

}

ListElement {

name: "D"

cost: 195

}

}

Component {

id: fruitDelegate

Item{

Row {

Label{

objectName: "lblName" + index + "1"

text: " Fruit: " + name

}

Label{

objectName: "lblName" + index + "2"

text: " Fruit: " + name

}

}

}

}

ListView {

id:list

property color fruit_color: "green"

model: fruitModel

delegate: fruitDelegate

anchorsfill: parent

}

Rectangle {

x:200

width: 50; height: 50

color: "red"

MouseArea{

anchorsfill: parent

onClicked: {

listmodel = fruitModel2

consolelog(listchildren[0]children[3]children[0]children[0]objectName)

consolelog(listchildren[0]children[2]children[0]children[1]objectName)

}

}

}

}

}

listView1SelectedItems[0]SubItems[2]Text = (intParse(kToString())+1)ToString();

这句话肯定要写到 +1 按钮的click事件里,怎么能写到listview 的事件里呢?

checkedIDadd(position); //这里添加选中项,但是再次点击选中项会再一次添加。

把上面这句的代码改成如下:

int count=checkedIDindexOf(position);

if(count == -1){

checkedIDadd(podition);

}else{

checkedIDremove(count);

}

还有checkedID的定义最好是定义成全局变量

问题解决,下面的可忽略。。。

--------------------------------------------------------------------------------------------------------

一般来说像这种选中或取消问题,从执行效率来说用下面会更好一些,这也是常用的方法:

List<Boolean> checkedID = new ArrayList<Boolean>();

for(int i=0 ;i<getData();i++){

checkedIDadd(false);

}

然后在你的监听中实现

checkedIDset(position, !checkedIDget(position));

当你需要调用选中的选项是,只要判断出checkedID中true的选项就可以了!

--------------------------------------------------------------------------------------------------

当然以上是模板,实际应用中更多的是把你定义的

List<Boolean> checkedID = new ArrayList<Boolean>();

for(int i=0 ;i<getData();i++){

checkedIDadd(false);

}

这部分放在你的geData中::

比如你的getData返回的是List<Object>;你可以在List add的时候把其处理成返回

List<HashMap<Object,Boolean>>这样的Map列表!!!

在你需要拿出选中的object 直接判断boolean拿出你的Oject就好!

------------------------------------------------------------------------------------------------

最后希望能够帮到你,也希望你能写出更有效率的代码!

以上就是关于C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码全部的内容,包括:C# 我已经获取前选项index,怎样通过index来获取listview选中行的第一列求代码、qt 如何从listview中获取选中的数据、C# winform listView1中选中某列某行数据点击button将数据+1和-1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9792264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存