[英]How to do binding for a global ApplicationBar in Windows Phone with MvvmCross
[英]mvvmcross windows phone 8 custom binding
我想做一個自定義綁定。 當ServerViewModel中的屬性更改時,我想在相應的ServerView中調用一個函數。 基於N-28,我可以在Android上執行此操作,但如何在Windows Phone 8上執行此操作?
核心:ServerViewModel.cs
private bool _textUpdate;
public bool TextUpdate
{
get { return _textUpdate; }
set
{
_ textUpdate = value;
if (value) {
RaisePropertyChanged(() => TextUpdate);
}
}
}
Android:Setup.cs:
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
registry.RegisterCustomBindingFactory<ServerView>(
"SERVERVIEW",
dcs => new ServerViewTargetBinding(dcs));
base.FillTargetFactories(registry);
Android ServerViewTargetBinding.cs
public class ServerViewTargetBinding : MvxAndroidTargetBinding
{
public ServerViewTargetBinding(ServerView target)
: base(target)
{
//only one way target.MyCountChanged += TargetOnMyCountChanged;
}
protected override void SetValueImpl(object target, object value)
{
throw new NotImplementedException();
}
public override void SetValue(object value)
{
var target = Target as ServerView;
if (target == null)
return;
target.ServerCallback((bool)value);
}
public override Type TargetType
{
get { return typeof(ServerView); }
}
public override MvxBindingMode DefaultMode
{
get { return MvxBindingMode.OneWay; }
}
}
Android ServerView.cs
set.Bind(this).For("SERVERVIEW").To(vm => vm.TextUpdate);
public void ServerCallback(bool value)
{
if (_isUpdating)
return;
_isUpdating = true;
try{
_text.SetText(value);
}
finally{
_isUpdating = false;
}
}
如果要在Windows中使用mvvmcross綁定(包括自定義綁定),則需要包括bindingex軟件包-有關WindowsStore中的示例,請參見n = 35視頻(電話類似)。 完成之后,您可以添加自定義綁定,並在xaml的Bi.nd
語句中使用它們。
另外,您也許可以使用附加屬性來達到所需的效果-請參閱http://msdn.microsoft.com/zh-cn/library/ms749011(v=vs.110).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.