xamarin.ios - supported - mvxasynccommand
Control enlazable personalizado en un proyecto de MvvmCross Touch (1)
Tengo una MvxBaseBindableCollectionViewCell que carga un xib que contiene un botón personalizado. Me gustaría poder pasar este botón personalizado a ViewModel para enlazar. es posible?
Estoy intentando lograr algo como MyButton.ViewModel = ViewModel.ChildViewModel
y tengo ViewModel.ChildViewModel.Name como el título del botón.
Si desea vincular una celda personalizada, hay un tutorial sobre esto en http://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html
Si desea crear un UIButton totalmente enlazable dentro de esa vista, puede hacerlo utilizando alguna herencia como:
[Register("MyButton")]
public class MyButton
: UIButton
, IMvxServiceConsumer
{
private IList<IMvxUpdateableBinding> _bindings;
private const string BindingText = "SpecialTitle Customer.Name";
public MyButton()
{
}
public MyButton(IntPtr handle)
: base(handle)
{
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
foreach (var binding in _bindings)
{
binding.Dispose();
}
_bindings.Clear();
}
base.Dispose(disposing);
}
private object _dc;
public object DataContext
{
get { return _dc; }
set
{
_dc = value;
if (_bindings == null)
{
var binder = this.GetService<IMvxBinder>();
_bindings = binder.Bind(_dc, this, BindingText).ToList();
}
else
{
foreach (var binding in _bindings)
{
binding.DataContext = _dc;
}
}
}
}
public string SpecialTitle
{
get { return this.GetTitle(UIControlState.Normal); }
set { this.SetTitle(value, UIControlState.Normal); }
}
}
A un lado> MvvmCross v3 "Hot Tuna" contendrá algunas clases de ayuda para hacer esto un poco más simple de hacer.