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 }); }
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(); }