我在Silverlight应用程序中有一个DataGrid。此应用程序正在使用RIA数据服务。我的代码如下所示:
<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中选择的记录?
谢谢
答案 0 :(得分:3)
if (HtmlPage.Window.Confirm("Are you sure you want to delete this order?") == true)
{
DomainDataSource.DataView.Remove(DataGrid.SelectedItem);
DomainDataSource.SubmitChanges();
}
答案 1 :(得分:2)
首先,您无法定义自己的插入/更新/删除方法 - 即使遵守命名约定 - 因为编译器会生成一个错误列表,说明这是一个已经存在的冗余操作 第二,如果你写的话,在客户端: DomainDataSource.DataView.Remove(DataGrid.SelectedItem); DomainDataSource.SubmitChanges() 通过说这个实体(DataGrid.SelectedItem)不包含在entitySet中,你会在执行时间中得到另一个错误 然后该怎么办? 为什么生成的CRUD方法无法直接调用?