Я надеялся заменить EditItemTemplate из ASP.NET ListView на пользовательский элемент управления, но я не могу понять, как связать его с элементом данных в ListView для достижения двусторонней привязки данных. Элемент данных не является простым свойством. Это объект. Это только кажется, чтобы дать ОДНУ СТОРОНУ типа Eval привязка данных:Usercontrol in EditItemTemplate шаблона управления. Как добиться двусторонней привязки данных?
<EditItemTemplate>
<uc:MyUserControl id="thecontrol" runat="server" TheObject='<%# Container.DataItem %>'/>
</EditItemTemplate>
Это дает ошибку:
<EditItemTemplate>
<uc:MyUserControl id="thecontrol" runat="server" TheObject='<%# Bind("Container.DataItem") %>'/>
</EditItemTemplate>
Как делает это:
<EditItemTemplate>
<uc:MyUserControl id="thecontrol" runat="server" TheObject='<%# Bind("this") %>'/>
</EditItemTemplate>
Есть некоторые привязки синтаксиса выражение дать двухстороннюю привязку данных к текущему элементу в EditItemTemplate?
Редактировать. Это пользовательское управление:
public partial class EditItemUserControl : System.Web.UI.UserControl
{
public TestObject TheObject
{
get
{
return new TestObject() { ID = Int32.Parse(hfID.Value), Name = txtName.Text };
}
set
{
hfID.Value = value.ID.ToString();
txtName.Text = value.Name;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
}