Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在更新ListView中的项属性_C#_.net_Listview - Fatal编程技术网

C# 正在更新ListView中的项属性

C# 正在更新ListView中的项属性,c#,.net,listview,C#,.net,Listview,我试图弄清楚如何在渲染后在ListView中更新对象的属性。例如,假设ListView被数据绑定到一组雇员。每行显示员工的信息。加载表后,我需要说“如果员工姓名=[RON],则将其更改为文本[RONALD]” 我现在在想,我可以在ListView中访问ListViewDataItems,然后从那里开始,但是我被卡住了。任何帮助都将不胜感激 foreach(ListViewDataItem entry in lvProjectModeratorEntries.Items) { //I ne

我试图弄清楚如何在渲染后在ListView中更新对象的属性。例如,假设ListView被数据绑定到一组雇员。每行显示员工的信息。加载表后,我需要说“如果员工姓名=[RON],则将其更改为文本[RONALD]”

我现在在想,我可以在ListView中访问ListViewDataItems,然后从那里开始,但是我被卡住了。任何帮助都将不胜感激

foreach(ListViewDataItem entry in lvProjectModeratorEntries.Items)
{
    //I need to find the div where the firsName is 
    //displayed, and run my logic to update it.

}

我还以为我可以通过entry.DataItem获得它,但我在这一点上卡住了。

听起来你可以在你的员工模型上使用。在listview项目模板中,将文本绑定到要显示的员工属性。然后您可以更改Employee对象。

要在Listview中查找每个项目,您可以这样循环

for (int i = 0; i < lvProjectModeratorEntries.Items.Count; i++)
{
    int ii = 1;
    MessageBox.Show(lvProjectModeratorEntries.Items[i].SubItems[ii].Text);
    ii++;
}
for(int i=0;i
使用您自己的代码:

foreach (ListViewItem item in lvTest.Items)
{
    if (item.Text == "John")
        item.Text = "John is gone";
}

这应该给你一个如何做事的开始,但我不推荐这样做。还有更优雅、更可持续的解决方案。您是否考虑过将listview绑定到一个列表,并在列表中生成所有必要的业务逻辑,而不是实际的视图?

我只想动态更改它们以用于显示,而不是在数据库中。因此,对于这些类型,我们有EmployeeID=0和Name=“Unknown Employee”。在这个例子中,我们希望它“显示”承包商,而不是未知员工。我知道我应该为它添加或修改数据库设计,但由于某些原因我们不能。这不是只对实际修改对象实体有用,而不仅仅是动态更改显示的值吗?我是以诚实的方式问的。你不必改变数据库。只需在视图模型中添加逻辑,即可处理从数据库数据到希望显示内容的转换。哦,我明白你的意思。也只是在某些情况下,其他情况下我仍然需要显示“未知员工”。我明白你在说什么。谢谢。这就是MVVM模式的美妙之处。在视图模型中以各种方式解释数据时,可以保护模型中的数据。很高兴我能帮忙。:)你知道,我们正在接受一个新项目,每个人都在跳上MVC。我第一次这么做。再次感谢,因为我没有意识到这一点。我想我现在会尝试一下,然后稍后尝试更新模型,以了解bergmeister是如何解释的,因为我知道他来自哪里。Getting error ListViewDataItem不包含def或扩展子项。让我看看你们提到的输入,我很快就会更新。再次感谢。我完全同意寻找更优雅的方式。这就是为什么我有这个问题。哈哈,但我觉得也不行。它将查找数据项的“文本”值,其中数据项实际上是一个ProjectModerator对象。除非我弄错了。如果你使用M-V-VM,你甚至不应该直接访问项目,而是从集合中读取它们,因为它们绑定到实际视图,更新会自动进行。当我访问项目时,它总是说它们是“只读”的。我想做entry.Data作为对象,所以:project慢化剂=(作为project慢化剂的entry.FullName==“Ronald”,但这不行。无论如何,再次感谢你,我会继续研究这个问题。也许我只需要在databind中做,除非我使用jquery或其他什么。