2011-07-01 2 views
1

간단한 데이터 격자 목록 주소와 사용자가 새 항목을 편집/추가 할 수있는 하위 창이 있습니다. 기본 폼에서 DataGrid에 "빈 주소 개체가있는 자식 창을로드해야합니다 새 주소 삽입"단추가 있습니다. 그러나 그것은 내가 기록을 추가하게하지 않을 것이다. 내가 뭐 잘못하고 있니? 현재 코드는 다음과 같습니다 :Silverlight 4 DomainDataSource에 새 항목 추가

Dim address As New Address 
    Dim frmAddressObj As New frmAddress 

    If frmAddressObj.AddressDomainDataSource.DataView.CanAdd = False Then 
     frmAddressObj.AddressDomainDataSource.Load() 
    End If 
    frmAddressObj.AddressDomainDataSource.DataView.Add(address) 

주소는 주소 개체입니다. frmAddress는 하위 창 형식입니다. AddressDomainDataSource는 자식에서 사용하는 DataGrid에서 사용하는 것과 동일한 데이터 소스입니다. CanAdd는 항상 false이고 추가하기 전에로드를 시도하도록 지시 받았지만 도움이되지는 않습니다. Add 메서드에 도달하면이 ICollectionView에서 'Add'예외가 지원되지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 감사합니다

답변

1

DataView 필드는 읽기 전용 컬렉션으로 간주되어야합니다.

(myDataSource.DomainContext as myDomainContext).my_entitys.Remove(dgOrders.SelectedItem as order); 
(myDataSource.DomainContext as myDomainContext).SubmitChanges(); 

그것은 삽입 비슷합니다, 당신은 단지

my_entitys.Add(myNewEntityInstance); 

대신

my_entitys.Remove(entityToRemove); 

및 업데이트에 사용 : 데이터 그리드와 DomainDataSource의 가장 간단한 일반적인 사용법은 다음과 같이 간다 전화 만하면

(myDataSource.DomainContext as myDomainContext).SubmitChanges(); 
0

또한 도메인 서비스에 삽입 방법이 있어야합니다. 나는 최근에 내 경우 같은 문제가 있었다

public void InsertAddress(Address address) 
0

Public Sub InsertAddress(address As Address) 
End Sub 

또는 C#으로의 DomainDataSource로드 (또는 결합되지 않은 : 그래서 당신처럼 보이는 방법이 있는지 확인 그 컨텍스트는 아직 선택되지 않은 TabItem에 있기 때문에).

귀하의 도메인 데이터 소스가 시각적 트리에 제대로로드되어 있는지 확인하여 제 경우 문제를 해결하십시오.