コード例 #1
0
        public VariableBind(BindButton hostCtrl, EngineNS.UISystem.UIElement uiElement, EngineNS.UISystem.VariableBindInfo bindInfo, Type proType)
        {
            InitializeComponent();

            mHostControl   = hostCtrl;
            mBindUIElement = uiElement;
            mBindInfo      = bindInfo;
            mPropertyType  = proType;
            VariableName   = mBindInfo.VariableName;
            BindMode       = mBindInfo.BindMode;
            BindingOperations.SetBinding(this, BindModeProperty, new Binding("BindMode")
            {
                Source = mBindInfo, Mode = BindingMode.TwoWay
            });

            UIElementName = uiElement.Initializer.Name;
            BindingOperations.SetBinding(this, UIElementNameProperty, new Binding("Name")
            {
                Source = uiElement.Initializer
            });
        }
コード例 #2
0
        public static void OnBindPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            BindButton edit = d as BindButton;

            edit.Binded = false;

            bool bFindAttribute = false;
            var  newPro         = e.NewValue as EditorCommon.CustomPropertyDescriptor;

            foreach (var att in newPro.Attributes)
            {
                if (att is EngineNS.Editor.UIEditor_BindingPropertyAttribute)
                {
                    bFindAttribute = true;
                    break;
                }
            }

            if (bFindAttribute)
            {
                edit.BindingRectVisibility = Visibility.Visible;
            }
            else
            {
                edit.BindingRectVisibility = Visibility.Collapsed;
                return;
            }

            //edit.ComboBox_BindClass.Items.Clear();
            //edit.ComboBox_BindProperty.Items.Clear();
            //var bindClassList = UISystem.UIReflectionManager.Instance.GetBindClassInfosWithPropertyType(newPro);
            //foreach (var bindInfo in bindClassList)
            //{
            //    edit.ComboBox_BindClass.Items.Add(bindInfo.ClassType.FullName);
            //}

            //UISystem.WinBase win = edit.BindInstance as UISystem.WinBase;
            //if (win != null)
            //{
            //    var proBindInfo = win.GetClassPropertyBinds(newPro.Name);
            //    if (proBindInfo != null)
            //    {
            //        edit.ComboBox_BindMode.SelectedItem = proBindInfo.BindingMode.ToString();
            //        edit.ComboBox_BindClass.SelectedItem = proBindInfo.ClassType.FullName;
            //        edit.ComboBox_BindProperty.SelectedItem = proBindInfo.PropertyInfo.Name;
            //        edit.Binded = true;
            //    }
            //}

            edit.TextBlockPropertyName.Text = newPro.Name;
            //if (edit.mClassPropertyBindInfo != null)
            //{
            //    CodeLinker.ChildObjectInfo ccInfo;
            //    if (edit.m_ctrlDataBase.m_bindChildObjectDic.TryGetValue(newPro.Name, out ccInfo))
            //    {
            //        edit.BindingChildObject = ccInfo;
            //    }
            //    else
            //        edit.BindingChildObject = null;
            //}
            //edit.UpdateBindShow();
        }