MVVMCross を使用して、属性付きの文字列を UILabel にバインドしたいと考えています。通常の文字列をバインドするには、次のようにします。
set.Bind(MyLabel).To(vm => vm.MyString);
しかし、テキストの一部が 1 つの色と 1 つのフォント サイズを使用し、別の部分が別の色と別のフォント サイズを使用する文字列が必要です。これが静的で問題ない場合は、インターフェイスビルダーにラベルを追加して「属性付き」に設定し、必要な文字列の部分に必要なフォントオプションを設定します.
だから私は Mvvmcross で、おそらくソース文字列を属性付き文字列に変換するコンバーターが必要だと思ったのでMvxValueConverter<string,NSMutableAttributedString>
、メソッドでこれを行うだけのコンバーターを作成しようとしましたConvert
:
return new NSMutableAttributedString(value);
最終的には、実際にいくつかの異なる属性を追加します。残念ながら、これは機能しません。バインディングを次のように設定した場合:
set.Bind(MyLabel).To(vm => vm.MyString).WithConversion("MyConverter");
MvvmCross は.ToString
、属性付きの文字列に対して a を実行するだけのようで、次のように表示されます。
Some Text {}
{}
元の文字列の一部ではないことに注意してください。
MVVMCross で属性付き文字列をバインドする方法はありますか?