두 개의 viewState 속성이 있습니다.참조 객체에 의해 할당
SelectedObject = MyObjects.Where(x=>x.MyId ==IdSelectedInUI)
이 나에게 쉽게 조작 할 수 있습니다 : 나는이 같은 SelectedObject에 할당
하나는 List<MyObject> MyObjects
이며, 다른 하나는 사용자가 목록에서 개체를 선택 할 때마다 MyObject SelectedObject
입니다 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