일부 숫자 값에 대해 편집 할 수없는 데이터 표시로 모노 터치 대화 상자를 사용하고 싶습니다. DialogViewController.ReloadData를 호출해도 바인드 된 객체의 데이터는 업데이트되지 않습니다.Monotouch-Dialog ReloadData가 데이터를 다시로드하지 않습니까?
class AccountFormModel
{
[Section("Account data", "")]
[Caption("Balance")]
public string balance;
}
...
private void InitComponents()
{
accountFormModel = new AccountFormModel();
accountFormModel.balance = "TestTestTest";
bc = new BindingContext(this, accountFormModel, "AccountData");
dialogViewController = new DialogViewController(bc.Root);
dialogViewController.Autorotate = true;
}
private void RefreshData()
{
string b = SomeDatasource.Account.Balance.ToString("N4");
accountFormModel.balance = "$" + b;
dialogViewController.ReloadData();
}
디버깅 refreshData 방법에서 accountFormModel.balance가 오른쪽 값으로 설정되는 것을 알 수 있지만, 아무것도 시뮬레이터 형태에 변화 없음 (TestTestTest을 유지). 내가 뭘 잘못하고있어?
헤이 Miguel, 그래서 내가 큰 스크롤 가능한 목록을 만들려고 노력하고있는 개체의 lage 목록 (약 1000)이 있다면, 아마도 Dialog가 가장 적합한 도구가 아닌 것입니까? 나는 SyleStringElement를 광범위하게 사용하고 있으며, Root.Add (mySection)에 대한 호출이 완료된 후에도 UITableView (3GS 장치에서)를 렌더링하는 데 3-4 초 정도 걸린다. Dialog를 사용하지 않고 GetCell을 쉽게 오버라이드하여 동일한 작업을 수행 할 수 있습니다. Dialog가 Elements API를 사용하여 큰 목록을 렌더링하는 데 적합하지 않다는 것을 해석하면 올바르게 대답을 이해하고 있습니까? – NovaJoe
사용자가 양식에 대해 "취소"를 선택하면 다시로드 할 데이터가 필요합니다. – tofutim
신경 쓰지 마라. 나는 내가 잘못하고있는 것을 발견했다. 루트 요소를 작성한 다음 섹션을 추가했습니다. 섹션과 모든 요소는 LINQ select에 의해 만들어지는 자식 요소이지만 루트 요소는 만들어지지 않습니다. 루트 요소 생성이 LINQ select에 포함되면 전체 작업이 매우 빠릅니다. ... MonoTouch.Dialog 프로젝트 페이지 예제의 Miguel 예제와 같습니다. >. < – NovaJoe