C# 如何在ListView中反向访问数据绑定对象方法?

C# 如何在ListView中反向访问数据绑定对象方法?,c#,listview,C#,Listview,所以我使用的是ListView,我真的想使用去极化标记来生成对象上的helper方法中已经定义的数据。例如,如果我将一个ListView绑定到一个“Project”对象列表,并且我有一个在该“Project”类上定义的名为“GetFormalProjName”的方法,那么我如何从ListView的ItemTemplate中找到该方法 似乎很容易命中我绑定的“Project”对象的任何子对象,我甚至可以轻而易举地命中这些子对象的方法(见下文): 在上面的例子中,“EmpCoreView”是“P

所以我使用的是ListView,我真的想使用去极化标记来生成对象上的helper方法中已经定义的数据。例如,如果我将一个ListView绑定到一个“Project”对象列表,并且我有一个在该“Project”类上定义的名为“GetFormalProjName”的方法,那么我如何从ListView的ItemTemplate中找到该方法

似乎很容易命中我绑定的“Project”对象的任何子对象,我甚至可以轻而易举地命中这些子对象的方法(见下文):


在上面的例子中,“EmpCoreView”是“Project”对象的子对象,该对象是listView的此项的源。如您所见,我可以访问EmpCoreView对象的方法(“GetFullName()”是对象“EmpCoreView”上的方法)。但是对于“Project”对象上的方法,我似乎无法获得正确的语法来访问它们。我试着用下面这样的“this”:

<%# ((Project)Eval("this")).GetFormalProjName() %>

但这失败了,因为“this”指的是ASPX页面。那么,如果我可以得到我的数据绑定对象子对象及其所有方法,那么如何得到数据绑定对象的方法呢


我知道如何使用代码来实现这一点,我只想以声明的方式来实现,我想肯定有一种方法是我所缺少的。谢谢

根据MSDN和Mono源代码,
Eval
方法采用属性名称。因此,您不能直接引用当前对象。作为一种解决方法,您可以添加一个返回对象本身的属性,然后可以调用方法。或者,您可以为要显示的值实际添加属性访问器,而不是调用方法。

我认为您可以参考Container.DataItem来参考您尝试执行的“this”指针:


一旦您强制转换根对象,就可以深入查看属性和方法。

嘿,这正是我想要的,谢谢!遗憾的是,在这一点上,我没有足够的代表投票支持你的答案:(
<%# ((Project)Eval("this")).GetFormalProjName() %>