C# 在ASP.net webforms中将列表从FormView绑定到模型

C# 在ASP.net webforms中将列表从FormView绑定到模型,c#,asp.net,data-binding,list,formview,C#,Asp.net,Data Binding,List,Formview,对于大型填充表单,我使用asp.net FormView将神奇的数据绑定到我的模型。在这个模型中,我有一个名为Rides(如下所示)的属性,它公开了一个列表,我显然不想完全替换它。所以我把它改成只读 但是,这样我就不能再使用数据绑定功能了。这个问题有共同的解决方案吗 public IList<Ride> Rides { get { if (this._rides == null) { this._rides =

对于大型填充表单,我使用asp.net FormView将神奇的数据绑定到我的模型。在这个模型中,我有一个名为Rides(如下所示)的属性,它公开了一个列表,我显然不想完全替换它。所以我把它改成只读

但是,这样我就不能再使用数据绑定功能了。这个问题有共同的解决方案吗

public IList<Ride> Rides
{
    get
    {
        if (this._rides == null)
        {
            this._rides = new List<Ride>();
        }

        return this._rides;
    }
}
公共IList游乐设施
{
得到
{
if(this.\u rides==null)
{
这个。_rides=新列表();
}
把这个还给我;
}
}

您仍然可以使用数据绑定,而不是使用, 由于Bind通常用于双向绑定&Eval通常用于对底层数据源进行评估,所以当您还有setter时,Bind将非常方便。
希望这能提供足够的光线&你会发现它很有用。

黑暗中的疯狂刺杀,不知道这是否有效,但我想你可以试试

如何将setter(set)放回属性中,但将其分配给自身

例如

这意味着属性中的值是不可触摸的,如果尝试设置操作,则不会造成任何损坏,并且仍应绑定…

Monty, 请看一个名为BindingList的类。绑定列表支持双向绑定。您可以在代码中从您的集合创建它,并将其绑定到FormView的datasource属性。我想这就是你想要的。
另外,通过公开IList,您还没有将此内容设置为只读。我可以重铸列表,我可以修改您的所有项目的方式。如果您真的想将骑乘公开为只读返回IEnumerable,而不是通过ReadOnlyCollection返回列表。。。将列表重铸到另一个类不会有帮助。

当你说不能使用数据绑定时,到底是什么问题?会发生什么?您是否收到任何错误消息?谢谢您的回答。然而,我的目的是能够在FormView中使用物业游乐设施。最好我希望该属性是数据绑定的(而不是)。谢谢你的回复,但它不会工作。。。这样,DataBind()方法仍然无法将值绑定回它的源。我想这就可以了,我想这是它所能做到的。当然我知道暴露为IList不会使其成为只读的。我想试试这个,谢谢。对不起,我明白你的意思了,这房子是只能买的。我的错:)
set
{
    this._rides = this._rides;  // Rather than this._rides = value;
}