0

我很难尝试在 DetailsView EditTemplateField 中绑定属性。这是我的数据结构:

Class1{
public int idClass { get; set; }
public Class2 classObject { get; set; }

}

Class2 {
public int idClass2 { get; set;}
}

Class1 是与下拉列表关联的 ObjectDataSource DataObjectTypeName。我正在尝试将 Dropdownlist 值绑定到 idClass2,如下所示:

Bind("classObject.idClass2");
4

4 回答 4

1

你不能。AFAIK 您只能将 Eval(单向绑定)与嵌套对象一起使用。无论如何,您可以做的是使用新属性修改第一个类:

Class1{
  public int idClass { get; set; }
  public Class2 classObject { get; set; }

  public int idClass2 { 
    get { return classObject.idClass2; }
    set { classObject.idClass2 = value; }
  }
}

并绑定它:Bind(idClass2)

于 2013-05-07T21:23:13.250 回答
0

您可以制作一个“普通”对象

Class1{
    public Class2 class2 { get; set; }
    public int Var { get; set; }
    public int InnerVar { get { return class2.Var; } }
}

Class2{
    public int Var { get; set; }
}

然后您可以使用 Class1 InnerVar 访问 Class2 中的 Var。

于 2013-05-07T21:46:58.490 回答
0

当您制作一个对象时,classObject您还应该制作其中所有类的对象。这样你就可以访问了classObject.idClass2,如果你不做对象idClass2你会得到空异常。

于 2013-05-08T10:22:45.430 回答
0

是否绝对有必要将 idClass2 放在单独的类中?如果这是 Class2 中唯一的属性,为什么不将属性添加到 Class1 中呢?

即使你

否则我认为你需要提取对象 Class2 然后像这样绑定它

var _classObject = class1.classObject;
Bind("_classObject.idClass2");
于 2013-05-07T21:29:57.327 回答