2017-12-11 4 views
0

私は次のコードを動作させるのに苦労しています。 ViewModelにバインドされたUIView(ButtonAnswer)の不透明度を変更したい。私は多くのことを試してみたが、私はそれを動作させることはできません。MVVMCrossを使用してViewModelにバインドされたUIViewの不透明度をXamarin iOSアプリケーションで変更していません

次の行が働いている:

this.CreateBinding(ButtonAnswer).For(v => v.Hidden).To((AnswerViewModel vm) => vm.Selected).Apply(); 

しかし、これではありません。

this.CreateBinding(ButtonAnswer).For(v => v.Opacity).To((AnswerViewModel vm) => vm.Selected).Apply(); 

vm.Selectedがありますブール

これを修正する方法がわかりません。誰かが私を助けたり、少しのコードを分かち合うことができることを願っています。

ありがとうございます!

+0

不透明度はブール値ではありません – Cheesebaron

答えて

1

ValueConverterを使用してこれを実行できます。 https://www.mvvmcross.com/documentation/fundamentals/value-converters

:値コンバータに関する

詳細情報を見つけることができ

this.CreateBinding(ButtonAnswer) 
    .For(v => v.Opacity) 
    .To((AnswerViewModel vm) => vm.Selected) 
    .WithConversion(new OpacityValueConverter(), null) 
    .Apply(); 

public class OpacityValueConverter : MvxValueConverter<bool, int> 
{ 
    protected override int Convert(bool visible, Type targetType, object parameter, CultureInfo cultureInfo) 
    { 
     return visible ? 100 : 0; 
    } 
} 

バインディングコード:

例えば(IプロパティOpacityタイプintであると仮定しています)

関連する問題