2011-03-04 1 views
2

Silverlight 응용 프로그램에 DataGrid가 있습니다. 이 응용 프로그램은 RIA 데이터 서비스를 사용합니다. 내 코드는 다음과 같습니다RIA를 통한 레코드 삭제 Silverlight의 서비스

<riaControls:DomainDataSource AutoLoad="True" 
    d:DesignData="{d:DesignInstance my1:Order, CreateList=true}" Height="0" 
    LoadedData="orderDomainDataSource_LoadedData" Name="orderDomainDataSource" 
    QueryName="GetOrdersQuery" Width="0"> 
    <riaControls:DomainDataSource.DomainContext> 
    <my:OrderDomainContext /> 
    </riaControls:DomainDataSource.DomainContext> 
</riaControls:DomainDataSource> 
<sdk:DataGrid AutoGenerateColumns="True" Height="202" Name="ordersDataGrid" 
    HorizontalAlignment="Left" 
    ItemsSource="{Binding ElementName=orderDomainDataSource, Path=Data}"> 
</sdk:DataGrid> 
<Button Content="Delete Order" Height="23" Name="deleteButton" 
    Width="90" Grid.Row="1" HorizontalAlignment="Left" Margin="102,8,12,0" 
    Click="deleteButton_Click" /> 

내 코드 숨김에서, 나는

private void deleteButton_Click(object sender, System.Windows.RoutedEventArgs e) 
{ 
    if (HtmlPage.Window.Confirm("Are you sure you want to delete this order?") == true) 
    { 
    } 
} 

내 문제, 내 데이터 소스에서 레코드를 삭제하는 방법을 알아낼 수 없습니다입니다 있습니다. DataGrid에서 현재 선택된 레코드를 삭제하려면 어떻게해야합니까?

는 당신에게 모든

답변

3
if (HtmlPage.Window.Confirm("Are you sure you want to delete this order?") == true) 

{ 
DomainDataSource.DataView.Remove(DataGrid.SelectedItem); 
DomainDataSource.SubmitChanges(); 
} 
2

먼저 삽입의 자신의 방법을 정의 할 수 없습니다 감사/업데이트/명명 규칙을 관찰 -even 삭제 - 컴파일러는 이것이이다라고 오류의 목록을 생성하기 때문에 이미 존재하는 중복 작업 둘째, 클라이언트 쪽에서 쓸 경우 : DomainDataSource.DataView.Remove (DataGrid.SelectedItem); DomainDataSource.SubmitChanges() 이 엔터티 (DataGrid.SelectedItem)가 엔터티 집합에 포함되어 있지 않음을 알리는 실행 시간에서 다른 오류가 발생합니다. 그런 다음 수행 할 작업? 유전자 변형 된 CRUD 방법을 직접 호출 할 수없는 이유는 무엇입니까?