私はプログラミングの初心者です。私はC#でWPFアプリケーションを開発し、Entity FrameworkとDevexpressコンポーネントを使用します。私はGridControlコンポーネントdgv_SupportComponent
を持っています。 btn_Void
をクリックすると、dgv_SupportComponent
が更新されます。Entity Frameworkを使用してWPFでDataGridをリフレッシュする方法
XAMLマークアップは次のとおりです。
<Window.Resources>
<dxcore:EntityCollectionViewSource x:Key="EntityCollectionViewSource" Culture="en-US" ContextType="{x:Type HadishDataModelLayer:HadishDataBaseEntities}" CollectionViewType="{x:Type CollectionView}" Path="vw_SupportComponent">
<dxcore:DesignDataManager.DesignData>
<dxcore:DesignDataSettings RowCount="5"/>
</dxcore:DesignDataManager.DesignData>
</dxcore:EntityCollectionViewSource>
</Window.Resources>
<Grid Margin="0,0,-0.4,0" >
<dxg:GridControl x:Name="dgv_SupportComponent" AutoGenerateColumns="None" EnableSmartColumnsGeneration="True" Margin="0,-1,0.4,0.4" SelectionMode="Cell" AllowLiveDataShaping="True" ItemsSource="{Binding Data, Source={StaticResource EntityCollectionViewSource} , UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True }" >
<dxg:GridControl.View>
<dxg:TableView x:Name="tlv_support" ShowTotalSummary="True" AllowEditing="True" AllowPerPixelScrolling="True" RowUpdated="tlv_support_RowUpdated" EditFormPostMode="Immediate" AllowCascadeUpdate="True" AllowGroupSummaryCascadeUpdate="True" ShowAutoFilterRow="True" ShowSearchPanelFindButton="True" ShowSearchPanelMRUButton="True" ShowSearchPanelNavigationButtons="True" SearchPanelAllowFilter="True" SearchColumns="ComponentSt" ShowSearchPanelMode="Never" SearchString="Active" SearchPanelHighlightResults="False" NavigationStyle="Cell" ShowGroupFooters="True" EnableImmediatePosting="True" ShowCriteriaInAutoFilterRow="True" ShowCheckBoxSelectorColumn="True" NewItemRowPosition="Top" IsSynchronizedWithCurrentItem="True" />
</dxg:GridControl.View>
<dxg:GridColumn x:Name="CulComponentID" FieldName="ComponentID" IsSmart="True" AllowEditing="True" />
<dxg:GridColumn FieldName="ComponentName" IsSmart="True" AllowEditing="True" FilterPopupMode="CheckedList" />
<dxg:GridColumn FieldName="ComponentWeight" IsSmart="True" AllowEditing="True" />
<dxg:GridColumn FieldName="ComponentWarehouseName" IsSmart="True" />
<dxg:GridColumn FieldName="ApprovedBy" IsSmart="True"/>
<dxg:GridColumn FieldName="ComponentWaste" />
<dxg:GridColumn FieldName="ComponentSt" />
</dxg:GridControl>
</Grid>
私はbtn_Void
をクリックしたときにデータグリッドをリフレッシュしたいです。
このコードはデータをSQLに更新しましたが、DataGridは更新されません。
私のコードは次のとおりです。
private void btn_Void_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
{
foreach (int rowHandle in tlv_support.GetSelectedRowHandles())
{
int supid = Convert.ToInt32(dgv_SupportComponent.GetCellValue(rowHandle, "ComponentID"));
db.SPSupportComponentState(supid, HadishLogicLayer.HadishCode.gCompanyCode, false, HadishLogicLayer.HadishCode.gUserID);
}
dgv_SupportComponent.RefreshData(); /// this code dose not refresh datagrid
}