나는 listview가있는 Form을 가지고 있습니다. Form.Show를 호출 한 후 내 listview를 업데이트해야합니다. 그러나 FormviewShow가 내 listview 코드에 관계없이 호출 된 후에는 비어 있고 열이없고 데이터도 표시되지 않습니다. 내 Listview 코드까지 Form.Show를 이동하면 목록보기가 올바르게 표시됩니다.Form.Show 다음에 listview를 업데이트하는 방법
여기 내 목록보기 코드 :
private void InitializeListView()
{
_snapshotList.BeginUpdate();
_snapshotList.Items.Clear();
foreach (ISnapshot snapshot in _snapshots)
{
string comment = InstanceFactory<ProjectRecoveryService>.Instance.RetrieveCommentsforSnapshot(snapshot);
string[] sub = new string[] { snapshot.Name, snapshot.Version.ToString(), snapshot.CreatedDate.ToString(), comment };
ListViewItem item = new ListViewItem(sub);
item.Tag = snapshot;
this._snapshotList.Items.Add(item);
}
_snapshotList.EndUpdate();
this._snapshotList.Refresh();
}
측면 노트, 내가 매우 비슷하지만 다른 사람이 원하는대로 작동하는 확장했다는 트 리뷰를 가진 다른 양식이있다.
의견이 있으십니까?
수정 1 이 양식은 단일 인스턴스 여야합니다. this post를 읽은 후, 내 Form.Show 코드는 다음과 같이 구성되어있다 :
public static RestoreSnapshotDialog GetInstance()
{
if (_dialog == null)
{
_dialog = new RestoreSnapshotDialog();
_dialog.Show(Control.FromHandle(System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle));
}
else
{
_dialog.BringToFront();
}
return _dialog;
}
을 내가 _DIALOG = null을 설정 FormClosed 이벤트에.
_snapshots는 언제 채워 집니까? –
Form.Show 다음에 채워집니다. _snapshots를 채우면 위의 메소드가 트리거됩니다. – Web
그래서 Form.Show는 그 문제와 아무런 관련이 없습니까? 채우기가 호출됩니다. 관련 루틴에 몇 가지 디버그를 넣고, 일어나고 있다고 생각하는 것이 일어나는지 확인하십시오. "doh"순간이되면 코드를 잘못 게시 한 것을 볼 수 없습니다. –