所以我对如何解决我的问题有所了解,但我需要更短的代码
我有listlist和imagelist。
每次listview项目选择索引更改 label1.text也将更改或更新
这是我的代码
if (listView1.Items[0].Selected == true)
{
label1.Text = "Number1";
}
if (listView1.Items[1].Selected == true)
{
label1.Text = "Number2";
}
我试着询问是否有办法利用循环来缩短代码。
答案 0 :(得分:2)
如果您使用的是ListView
' ItemSelectionChanged
事件,那么您只需:
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
label1.Text = e.Item.Text;
}
但如果ListView
的{{1}}属性设置为MultiSelect
,则需要更复杂的代码。
e.g。
true
如果您需要其位置,可以使用private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
label1.Text = listView1.SelectedItems[0];
}
}
的{{1}}属性。
答案 1 :(得分:0)
要显示所选项目,您可以尝试此
$scope.user = {
age: {
display: "Age",
val: "21"
},
firstName: {
display: "First Name",
val: "John"
},
lastName: {
display: "Last Name",
val: "Smith"
},
}
自定义文字
<tr ng-repeat = "(key, value) in user">
<td ng-model = "user[key].display"></td>
<td ng-model = "user[key].val"></td>
</tr>
答案 2 :(得分:0)
您有两个主要选项,for
和foreach
。 Foreach
可能更具可读性,但您无法获取索引,而for
可读性较差但有索引。
int i = 1;
foreach (var item in listView1.Items) {
if (item.Selected == true) {
label1.Text = "Number" + i;
}
i++;
}
//OR DO THIS
for (int i = 1; i <= listView1.Items.Length; i++) {
if (item.Selected == true) {
label1.Text = "Number" + i;
}
}
答案 3 :(得分:0)
您还可以在列表视图上创建隐藏列,这将是您的标签文本,然后您可以执行以下操作
你会把它放在foreach循环中,例如;
foreach(ListViewItem item in ListView1)
{
label1.Text = item.HiddenField;
}