/// <summary> /// Creates a custom binding for the <see cref="TextView"/>. /// Remember to call <see cref="IMvxViewBindingManager.UnbindView"/> on the view after you're done /// using it. /// </summary> public static void BindToText(this TextView view, INotifyPropertyChanged source, string sourcePropertyName, IMvxValueConverter converter = null, object converterParameter = null) { var activity = view.Context as IMvxBindingActivity; if (activity == null) return; var description = new MvxBindingDescription { SourcePropertyPath = sourcePropertyName, Converter = converter, ConverterParameter = converterParameter, TargetName = "Text", Mode = MvxBindingMode.OneWay }.ToEnumerable(); var tag = view.GetBindingTag (); if (tag != null) { MvxBindingTrace.Trace( MvxTraceLevel.Warning, "Replacing binding tag for a TextView " + view.Id); } view.SetBindingTag (new MvxViewBindingTag (description)); activity.BindingManager.BindView (view, source); }
public IMvxTargetBinding CreateBinding(object target, MvxBindingDescription description) { var factory = FindSpecificFactory(target.GetType(), description.TargetName); if (factory != null) return factory.CreateBinding(target, description); var targetPropertyInfo = target.GetType().GetProperty(description.TargetName); if (targetPropertyInfo != null) { return new MvxPropertyInfoTargetBinding(target, targetPropertyInfo); } var targetEventInfo = target.GetType().GetEvent(description.TargetName); if (targetEventInfo != null) { #warning Handle other event types here - possibly another lookup table so people can register their own? if (targetEventInfo.EventHandlerType == typeof(EventHandler)) return new MvxEventHandlerEventInfoTargetBinding(target, targetEventInfo); } return null; }
public IMvxTargetBinding CreateBinding(object target, MvxBindingDescription description) { var targetPropertyInfo = target.GetType().GetProperty(description.TargetName); if (targetPropertyInfo != null) { try { return _bindingCreator(target, targetPropertyInfo); } catch (ThreadAbortException) { throw; } catch (Exception exception) { MvxBindingTrace.Trace( MvxTraceLevel.Error, "Problem creating target binding for {0} - exception {1}", _targetType.Name, exception.ToString()); } } return null; }
public IMvxTargetBinding CreateBinding(object target, MvxBindingDescription description) { return _innerFactory.CreateBinding(target, description); }
protected virtual View CreateSimpleView() { var inflater = LayoutInflater.FromContext (Context); var view = inflater.Inflate (SimpleViewLayoutId, null); // Create manual binding: var bindingDesc = new MvxBindingDescription( "Text", "", MvxStringValueConverter.Instance, null, string.Empty, MvxBindingMode.Default).ToEnumerable(); view.SetBindingTag(new MvxViewBindingTag(bindingDesc)); return view; }