У меня есть требование для расширения до Stuart'sanswer, связанного с форматированием строки в кресте MVVM для iOS во время выполнения. Я хочу передать в сложном объекте во время выполнения и оценить его в значение конвертора, в основном достичь того же, что я могу на андроид с Тибетского связывания как так:MVVM Перекрестная привязка со сложной строкой формата
local:MvxBind="Text 'Awaiting ' + Name + ' For 10 Minutes' " />
Пробовал до сих пор
set.Bind(txtTitle).To(vm => vm.Name).WithConversion("StringFormatPlus", new { before = "Awaiting", after = " For 10 minutes" });
Я попытался включить параметр объекта в динамический, но для этого требуется ссылка на Microsoft c sharp dll, поэтому я не уверен, что это путь.
public class StringFormatPlusValueConverter : MvxValueConverter
{
public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return null;
if (parameter == null)
return value;
var dynamicParameter = parameter as dynamic;
var before = dynamicParameter.before;
var after = dynamicParameter.after;
var format = "{0} {1} {2}";
return string.Format(format, before, value, after);
}
}
Обходной я использую, чтобы создать дополнительный геттер свойство на модели представления, что я форматировать, как мне нравится, и связывание с, что в контроллере представления IOS. Он работает, но он не идеален и загромождает мою модель представления с сильно связанной логикой представления.
работал отлично спасибо –