복잡한 개체 데이터 바인딩이 올바르게 작동하는 데 어려움이 있습니다. 3 DataGridViews 폼 및 1 바인딩 소스가 있습니다. BindingSource.DataSource는 FileMoveProcesses 객체이며, BindingSource에와 DataMembers의 데이터 소스를 가지고이 다른 DataGridViews 각각 SourceDetails 및 DestinationDetails가되어있는 DataMember를이 FileMoveProcess 객체BindingSource에 바인딩 된 DataGridView에 새 행 삽입
public class FileMoveProcesses
{
public List<FileMoveProcess> Processes { get; set; }
}
public class FileMoveProcess
{
public string Name { get; set; }
public bool Disabled { get; set; }
public FileMoveProcessDetails SourceDetails { get; set; }
public FileMoveProcessDetails DestinationDetails { get; set; }
}
입니다. 아래에서 볼 수있는 것처럼 이러한 세부 항목에 대한 XML 파일에서 이미 데이터를 사용할 수있는 경우이 작업이 적절합니다. 편집 프로세스는 예상대로 업데이트가 직렬화되어 작동합니다.
문제는 내가 새로운 FileMoveProcess을 추가 할 때 제공됩니다. 맨 왼쪽 FileGoveView FileMoveProcess 포함 올바르게 저장됩니다 있지만 DataGridview SourceDetails 및 DestinationDetails 데이터를 추가 할 때 그들은 FileMoveProcessDetails 개체를 새 FileMoveProcess 만들기 위해 실패합니다 그래서 xml 파일에 쓸 수 없습니다.
어떻게 그리워 했습니까? 데이터는 새로운 아이템 사용할 수 있도록
TIA
추신 선택 상자를 열거 바인딩이다.
그래서 세부 묘사를 채우고 저장을하면 어떻게됩니까? 디버그 할 때'FileMoveProcessDetails' 객체가 현재'FileMoveProcess'에 첨부되어 있거나 null 인 것을 볼 수 있습니까? – Vland
소스 또는 대상 세부 정보 그리드가 포커스를 잃을 때 입력 된 모든 데이터가 지워집니다. – Tim
업데이트. DataGrid 속성의 DataBinding/Advanced 섹션에 가서 "none"으로 바인딩 드롭 다운으로 다시 설정했습니다. 이렇게하면 포커스를 잃을 때 지워지는 격자의 문제가 해결되었습니다. 이제 저장을 클릭하면 세부 정보 개체가 null입니다. – Tim