2 つの viewState プロパティがあります。
1 つは、List<MyObject> MyObjects
もう 1 つは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"
}
}