0
來自WPF背景我習慣使用後綴詞「Converter」命名所有值轉換器。我可以在MvvmCross中做同樣的事情,但Android Axml中的使用風格沒有轉換器後綴。MvvmCross轉換器的自定義名稱
是否有可能仍然包含後綴詞轉換器而無需手動註冊?
來自WPF背景我習慣使用後綴詞「Converter」命名所有值轉換器。我可以在MvvmCross中做同樣的事情,但Android Axml中的使用風格沒有轉換器後綴。MvvmCross轉換器的自定義名稱
是否有可能仍然包含後綴詞轉換器而無需手動註冊?
默認情況下,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 - 這可以返回您的自定義填充符Setup
類中的一個覆蓋的protected virtual MvxAndroidBindingBuilder CreateBindingBuilder()
中返回此自定義綁定生成器。
令人驚歎。 MvvmCross允許你重寫所有的東西。 – Telavian 2014-09-03 07:36:05
另請注意,'base'調用增加了'name = RemoveHead(name,「Mvx」);'你可能想也可能不想要 - 如果你不需要它,那麼就不要調用'base'方法。 – Stuart 2014-09-03 09:18:15