我有两个viewState属性。通过引用分配对象
一个是List<MyObject> MyObjects
,另外一个MyObject SelectedObject
当用户从列表中选择一个对象,我给它分配给SelectedObject这样的:
SelectedObject = MyObjects.Where(x=>x.MyId ==IdSelectedInUI)
这使我的易操纵SelectedObject
。
现在,当我更改SelectedObject
的属性时,如何将这些属性分配回列表中的原始对象?我想用ref
,但不能完全弄明白。
编辑 所有的对象都是类,而不是结构。
所以,这里是我有:
//Children are of type =List<MyParentObject.ChildObject>
public MyParentObject MyParent
{
get
{
if (ViewState["MyParent"] == null)
{
MyParent= GetItemsFromDatabase();
}
return (TaskInfo)ViewState["MyParent"];
}
set
{
ViewState["MyParent"] = value;
}
}
public MyParentObject.ChildObject SelectedChild
{
get
{
return (MyParentObject.ChildObject)ViewState["Child"];
}
set
{
ViewState["Child"] = value;
}
}
protected onButtonClick()
{
SelectedChild = MyParent.Children.Where(x=>x.Child_Id == Convert.ToInt32(txt.Text)).FirstOrDefault();
SelectedChild.Property2 = "test2" //OldValue "test1"
//now if I run
MyParent.Children.Where(x=>x.Child_Id ==Convert.ToInt32(txt.Text)).Select(x=>x.Property2) //Shows "test1" and I expect "test2"
}
}
'SelectedObject'不是'MyObject'类型,而是'IEnumerable'。你如何改变它的属性? –
@TimSchmelter,请参阅我的编辑。 – user194076