回答

3

CheckedChangedEventHandler<CompoundButton.CheckedChangeEventArgs>因此它不是MvvmCross自動知道的代表類型之一。


然而,有一個自定義的地方,這個綁定...

https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Binding.Droid/Target/MvxCompoundButtonCheckedTargetBinding.cs

而這個自定義綁定應該用註冊:

registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(MvxCompoundButtonCheckedTargetBinding), typeof(CompoundButton), "Checked")); 

https://github.com/slodge/MvvmCross/blob/vnext/Cirrious/Cirrious.MvvmCross.Binding.Droid/MvxAndroidBindingBuilder.cs


所以,如果你有一個視圖模型與屬性IsSpecial

private bool _isSpecial; 
public bool IsSpecial 
{ 
    get { return _isSpecial; } 
    set 
    { 
     _isSpecial = value; 
     RaisePropertyChanged(() => IsSpecial); 
     // your custom code here 
    } 
} 

那麼這種結合應該工作:

'Checked':{'Path':'IsSpecial'} 

,並應適用於任何CompoundButton - 複選框,交換機,或您自己的化合物..

+0

我想使用ICommand而不是此屬性.Nevermind,我改變了我的ViewModel來解決這個問題。 – Alphapage

+0

如果您願意,您可以編寫自定義綁定...或者,您可以將點擊綁定到某種切換命令? – Stuart

+0

而不是CheckedChange事件,我使用Click事件,它適用於我的命令。我更喜歡這種設計,而不是使用屬性綁定來玩,或者現在寫一個新的自定義綁定。非常感謝。 – Alphapage

相關問題