Asp.net 绑定到对象本身,而不是其中之一';s属性
使用Asp.net的Bind()方法,如何绑定到对象本身,而不是对象的某个属性?我不确定您到底要绑定什么。目前对我来说唯一有意义的事情就是绑定到一些UI控件,比如说下拉控件 通常有一些文本属性用于显示的值,而实际值的值属性用作标识符。在下拉列表中Asp.net 绑定到对象本身,而不是其中之一';s属性,asp.net,data-binding,Asp.net,Data Binding,使用Asp.net的Bind()方法,如何绑定到对象本身,而不是对象的某个属性?我不确定您到底要绑定什么。目前对我来说唯一有意义的事情就是绑定到一些UI控件,比如说下拉控件 通常有一些文本属性用于显示的值,而实际值的值属性用作标识符。在下拉列表中 数据文本字段 数据值字段 如果您有一个具有属性“Firstname”和“Id”的对象,您可以在这里指定DataTextField=“Firstname”和DataValueField=“Id” 在列表中,您可以直接在ASPX代码上使用Eval功能,
- 数据文本字段
- 数据值字段
DataTextField=“Firstname”和DataValueField=“Id”
在列表中,您可以直接在ASPX代码上使用Eval
功能,或者在列表模板中添加服务器端控件(即文字、标签),并实现ItemDataBound
事件(以中继器为例)。一个很好的例子进一步说明了这一点
希望我能帮点忙;) 我想Ryan在这里的意思是,如果你必须对这样一个物体
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
如果将Person
对象绑定到GridView中的任何位置,或者将Repeater绑定到任何数据源,则只绑定Person,并且它从其属性之一获得默认绑定值。
支持我们有一个来自Person
类型的变量Ryan
,因此我想通过调用
而不是
获取变量值
我试图为类设置DefaultBindingProperty属性,但它不起作用
[System.ComponentModel.DefaultBindingProperty("FirstName")]
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
那么,有人知道如何正确地执行吗?我通过添加一个名为SelfReference的属性来解决这个问题,该属性只返回this
。如果有人读到这篇文章并有更好的解决方案,我很想听听。我不知怎么想出了一个办法。实际上它是在“
请注意,尽管我们强调了要使用的值的路径是绑定的四个必要组件之一,但在要绑定到整个对象的场景中,要使用的值将与绑定源对象相同。在这些情况下,不指定路径是适用的。考虑下面的例子:
XAML
复制您可以改用Container.DataItem:
Item=''
请更清楚地指定您想要绑定的内容。到列表控件…?我正在绑定到FromView控件中的对象。在FormView中,我有一个UserControl,它定义了一个绑定类型的属性。例如,假设一个名为Name的类定义了两个属性,FirstName和LastName。Name类的实例绑定到FormView。我不想通过调用Bind(“FirstName”)和Bind(“LastName”)将FirstName或LastName传递给我的UserControl,我想将Name实例本身传递给我的UserControl.Yep。我想绑定对象,而不是它的一个属性。
ListBox ItemsSource="{**Binding**}" IsSynchronizedWithCurrentItem="true"/>