0
我想做一個自定義綁定。 當ServerViewModel中的屬性發生更改時,我想在相應的ServerView中調用一個函數。 基於N-28我可以爲Android做到這一點,但如何爲Windows Phone 8做到這一點?mvvmcross windows phone 8自定義綁定
核心: ServerViewModel.cs
private bool _textUpdate;
public bool TextUpdate
{
get { return _textUpdate; }
set
{
_ textUpdate = value;
if (value) {
RaisePropertyChanged(() => TextUpdate);
}
}
}
機器人: 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;
}
}
我可以看到你可以做一個valueconverter電話,但你怎麼可以做一個回調函數調用,從視圖模型到視圖? – user2831196
我可以做所有的呼叫,因爲除了保護覆蓋無效FillTargetFactories(IMvxTargetBindingFactoryRegistry註冊表) { registry.RegisterCustomBindingFactory( 「SERVERVIEW」, DCS =>新ServerViewTargetBinding(DCS))的Android; base.FillTargetFactories(registry); } –
user2831196