public bool BindViewProperty(object view, string viewProperty, BaseObservable bindable, string bindableProperty, BindMode bindMode) { if (view == null) { return(false); } if (string.IsNullOrEmpty(viewProperty)) { return(false); } if (bindable == null) { return(false); } if (string.IsNullOrEmpty(bindableProperty)) { return(false); } var vProp = view.GetType().GetProperty(viewProperty); if (vProp == null) { return(false); } var bProp = bindable.GetType().GetProperty(bindableProperty); if (bProp == null) { return(false); } //if (!bProp.PropertyType.Equals(typeof(T)) && !bProp.PropertyType.IsSubclassOf(typeof(T))) // return false; string cViewPropID = string.Concat(view.GetType().Name, view.GetHashCode(), viewProperty); if (ObjectLinks.ContainsKey(cViewPropID)) { return(false); } string cObjectPropID = string.Concat(bindable.GetType().Name, bindable.GetHashCode(), bindableProperty); ObjectLinks.Add(cViewPropID, new ObjectLink { ID = cObjectPropID, Object = bindable, Property = bProp }); BindModes.Add(cViewPropID, bindMode); ViewLinks.Add(new KeyValuePair <string, ViewLink>(cObjectPropID, new ViewLink { ID = cViewPropID, View = view, Property = vProp })); if (!ObservedObjects.Contains(bindable)) { ObservedObjects.Add(bindable); } return(true); }
public void Dispose() { Object = null; Property = null; }
public bool BindViewProperty(int viewID, string viewProperty, BaseObservable bindable, string bindableProperty, BindMode bindMode = BindMode.OneWay) { return(BindViewProperty(RootView.FindViewById(viewID), viewProperty, bindable, bindableProperty, bindMode)); }