DevExpress GridLookUpEditエディタがマルチパートキーを持つデータで動作するようには設計されていないことに気付きました。しかし、私はこの制限を回避しようとしています。GridLookUpEditとマルチパートキー
私GridLookUpEditのためのデータは、2つの列「PRODUCT_ID」と「PURITY_ID」と製品の純度です。
void lookUpEditProductPurities_EditValueChanged(object sender, EventArgs e)
{
// Get the purity from the product selected and update the purity column of the grid.
DevExpress.XtraEditors.GridLookUpEdit editor = (sender as DevExpress.XtraEditors.GridLookUpEdit);
DevExpress.XtraGrid.Views.Grid.GridView view = editor.Properties.View as DevExpress.XtraGrid.Views.Grid.GridView;
object val = view.GetRowCellValue(view.FocusedRowHandle, "PURITY_ID");
if (editor.Parent is GridControl)
{
GridControl ParentGridControl = (editor.Parent as GridControl);
GridView ParentGridView = (ParentGridControl.MainView as GridView);
DataRow CurrentDataRow = ParentGridView.GetDataRow(ParentGridView.FocusedRowHandle);
CurrentDataRow["PRODUCT_PURITY_ID"] = val;
}
}
Iは、マスターグリッドからそれを使用する場合、これは一つの小さな問題に、正常に動作します。私は、ユーザーがGridLookupEditに製品純度の行を選択した場合、基礎となるグリッドの純度を設定するには、このコードを持っています。既存の行が製品の最初の純度でない純度を参照する場合、グリッドをポップすると、最初の純度が選択されたように見えるようになります。これは私が心配している限り大きな問題ではありません。
しかし、私が抱えている大きな問題は、GridLookUpEditをマスターディテールグリッドのディテール行に使用することです。呼び出し:editor.Parentがマスターのグリッドコントロールを返していて、ParentGridControl.MainViewがマスターのGridViewを返しています。
GridViewでGridLookUpEditがエディタであることを取得するにはどうすればよいですか?
TIA - GridView.GetDetailView方法を使用 -
回答は、あなたが提供した最初のリンクで正しくありました。 ParentGridControl.MainView(マスターgridViewを提供する)の代わりに、ParentGridControl.FocusedViewを使用して現在の子のgridViewを取得しました。よく働く。ありがとう。 – shindigo