void Dialog_DialogOk(object sender, EventArgs e)
        {
            MemberChoiceDialog dlg = sender as MemberChoiceDialog;

            if (dlg != null)
            {
                var item = dlg.Tag as TupleItem;
                if (item != null)
                {
                    List <MemberChoiceSettings> selectedInfo = dlg.ChoiceControl.SelectedInfo;
                    if (selectedInfo != null && selectedInfo.Count == 1)
                    {
                        item.MemberUniqueName = dlg.ChoiceControl.SelectedInfo[0].UniqueName;
                    }
                }
                return;
            }

            MeasureChoiceDialog measure_dlg = sender as MeasureChoiceDialog;

            if (measure_dlg != null)
            {
                var item = measure_dlg.Tag as TupleItem;
                if (item != null)
                {
                    if (measure_dlg.ChoiceControl.SelectedInfo != null)
                    {
                        item.MemberUniqueName = measure_dlg.ChoiceControl.SelectedInfo.UniqueName;
                    }
                }
            }
        }
        bool BeginMemberEdit(TupleItem item)
        {
            if (item != null)
            {
                IChoiceDialog dlg = null;
                if (!String.IsNullOrEmpty(item.HierarchyUniqueName) && m_ChoiceDialogs.ContainsKey(item.HierarchyUniqueName))
                {
                    dlg = m_ChoiceDialogs[item.HierarchyUniqueName];
                }

                if (dlg == null)
                {
                    if (item.HierarchyUniqueName == "[Measures]")
                    {
                        // Выбор меры
                        MeasureChoiceDialog dialog = new MeasureChoiceDialog();
                        dialog.ChoiceControl.CubeName   = CubeName;
                        dialog.ChoiceControl.Connection = ConnectionID;
                        dialog.ChoiceControl.LogManager = LogManager;
                        GetIDataLoaderArgs args = new GetIDataLoaderArgs();
                        Raise_GetOlapDataLoader(args);
                        if (args.Handled)
                        {
                            dialog.ChoiceControl.OlapDataLoader = args.Loader;
                        }
                        dialog.Tag           = item;
                        dialog.DialogOk     += new EventHandler(Dialog_DialogOk);
                        dialog.DialogCancel += new EventHandler(Dialog_DialogCancel);
                        dialog.Show();
                        dlg = dialog;
                    }
                    else
                    {
                        // Выбор элемента измерения
                        MemberChoiceDialog dialog = new MemberChoiceDialog();
                        dialog.ChoiceControl.CubeName            = CubeName;
                        dialog.ChoiceControl.Connection          = ConnectionID;
                        dialog.ChoiceControl.HierarchyUniqueName = item.HierarchyUniqueName;
                        dialog.ChoiceControl.LogManager          = LogManager;

                        GetIDataLoaderArgs args = new GetIDataLoaderArgs();
                        Raise_GetOlapDataLoader(args);
                        if (args.Handled)
                        {
                            dialog.ChoiceControl.OlapDataLoader = args.Loader;
                        }

                        dialog.Tag           = item;
                        dialog.DialogOk     += new EventHandler(Dialog_DialogOk);
                        dialog.DialogCancel += new EventHandler(Dialog_DialogCancel);
                        dialog.Show();
                        dlg = dialog;
                    }
                    if (!String.IsNullOrEmpty(item.HierarchyUniqueName))
                    {
                        m_ChoiceDialogs[item.HierarchyUniqueName] = dlg;
                    }
                }

                if (dlg != null)
                {
                    dlg.Show();
                    return(true);
                }
            }
            return(false);
        }