Я хочу привязать присланную строку к UILabel, используя MVVMCross. Для того, чтобы связать обычную строку, я бы просто сделать:Как связать NSAttributeString (или NSMutableAttributedString)
set.Bind(MyLabel).To(vm => vm.MyString);
Но мне нужна строка, где часть текста будет использовать один цвет и один размер шрифта, а другая часть будет использовать другой цвет и другой размер шрифта. Если это было статично, не проблема, я бы добавил метку в построитель интерфейсов и установил ее «приписал», а затем задал любые параметры шрифта, которые я хочу, на которых когда-либо были частью нужной строки.
Так я думал, что с Mvvmcross, я бы, вероятно, потребуется конвертер, чтобы превратить свой исходный строку в приписываемой строку, поэтому я попытался создать конвертер из MvxValueConverter<string,NSMutableAttributedString>
, что просто делает это в своем Convert
методе:
return new NSMutableAttributedString(value);
В конце концов я фактически добавлю несколько разных атрибутов. К сожалению, это не работает. Если я устанавливаю мое связывание так:
set.Bind(MyLabel).To(vm => vm.MyString).WithConversion("MyConverter");
Оказывается, что MvvmCross просто делает .ToString
на приписываемую строке и отображает как:
Some Text {}
Обратите внимание на {}
не является частью исходной строки ,
Есть ли способ связать привязанную строку в MVVMCross?
Спасибо Стюарт. Так оно и было. И спасибо за ссылку, API для работы с атрибутированными строками немного сбивает с толку. –