Created
April 6, 2015 09:16
-
-
Save softlion/d9765282b80ec08f344e to your computer and use it in GitHub Desktop.
MvxNetworkActivityIndicatorTargetBinding for mvvmcross iOS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class MvxTargetBinding2 : MvxBinding, IMvxTargetBinding | |
{ | |
private readonly object _target; | |
protected MvxTargetBinding2(object target) | |
{ | |
_target = target; | |
} | |
protected object Target | |
{ | |
get { return _target; } | |
} | |
public virtual void SubscribeToEvents() | |
{ | |
// do nothing by default | |
} | |
protected virtual void FireValueChanged(object newValue) | |
{ | |
var handler = ValueChanged; | |
if (handler != null) | |
handler(this, new MvxTargetChangedEventArgs(newValue)); | |
} | |
public abstract Type TargetType { get; } | |
public abstract void SetValue(object value); | |
public event EventHandler<MvxTargetChangedEventArgs> ValueChanged; | |
public abstract MvxBindingMode DefaultMode { get; } | |
} | |
public class MvxNetworkActivityIndicatorTargetBinding : MvxTargetBinding2 | |
{ | |
public override MvxBindingMode DefaultMode | |
{ | |
get { return MvxBindingMode.OneWay; } | |
} | |
public static void Register(IMvxTargetBindingFactoryRegistry registry) | |
{ | |
registry.RegisterFactory(new MvxCustomBindingFactory<UIView>("NetworkActivityIndicator", source => new MvxNetworkActivityIndicatorTargetBinding(source))); | |
} | |
public MvxNetworkActivityIndicatorTargetBinding(UIView source) : base(source) | |
{ | |
} | |
public override Type TargetType | |
{ | |
get { return typeof(bool); } | |
} | |
public override void SetValue(object value) | |
{ | |
if (!(value is bool)) | |
return; | |
UIApplication.SharedApplication.NetworkActivityIndicatorVisible = (bool)value; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//In mvvmcross setup.cs | |
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry) | |
{ | |
base.FillTargetFactories(registry); | |
MvxNetworkActivityIndicatorTargetBinding.Register(registry); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment