2014-09-01 4 views
0

Исходя из фона WPF Я использую для обозначения всех преобразователей значений с постфиксным словом «Конвертер». Я могу сделать то же самое в MvvmCross, однако стиль использования в Android Axml не имеет постфиксатора конвертера.Пользовательские имена для преобразователей MvvmCross

Можно ли включать в себя постфиксное слово Converter без регистрации вручную?

ответ

1

По умолчанию MvvmCross регистрирует преобразователи значений, используя этот наполнитель - https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross.Binding/Binders/MvxValueConverterRegistryFiller.cs#L20

 name = RemoveTail(name, "ValueConverter"); 
     name = RemoveTail(name, "Converter"); 

Если вы хотите заменить этот наполнитель реестра, то вы можете:

  • создать новый класс наполнителя без RemoveTail правила
  • создать новый MyCustomBindingBuilder который наследует от MvxAndroidBindingBuilder и переопределяет protected virtual IMvxValueConverterRegistryFiller CreateValueConverterRegistryFiller() в https://github.com/MvvmCross/MvvmCross/blob/e6d10972b5c28e00e80acc3d9e8910961aa813d6/Cirrious/Cirrious.MvvmCross.Binding/MvxCoreBindingBuilder.cs#L74 - это может вернуть ваш пользовательский наполнитель
  • , вы вернете этот настраиваемый конструктор привязок в переопределенном protected virtual MvxAndroidBindingBuilder CreateBindingBuilder() в вашем классе Setup для вашего приложения.
+0

Amazing. MvvmCross позволяет вам переопределить все, что кажется. – Telavian

+0

Обратите внимание, что вызов 'base' добавляет' name = RemoveHead (имя, «Mvx»); 'который вы можете или не хотите - если вы этого не хотите, то просто не называйте' base' метод. – Stuart

Смежные вопросы