你好mvvmcross社区,
我的问题是关于ValueConverter
S参数:
有什么方法可以将变量传递给值转换器,而不是将变量作为ConverterParameter
?
类似:
<EditText
android:id="@+id/editPrice"
...
local:MvxBind="Text Price; Enabled IsPriceEnabled; BackgroundColor IsPriceEnabled, Converter=Enabled2MvxColor, ConverterParameter=Price"/>
,甚至通过整个对象例如:
<EditText
android:id="@+id/editPrice"
...
local:MvxBind="Text Price; Enabled IsPriceEnabled; BackgroundColor IsPriceEnabled, Converter=Enabled2MvxColor, ConverterParameter=editPrice"/>
tia,
使用Windows/XAML IValueConverter
时,您无法真正将数据结合的条目传递到Value Converter参数中。
但是,使用MVVMCross中的西藏绑定扩展,如果使用表格:
local:MvxBind="BackgroundColor Enabled2MvxColor(IsPriceEnabled, Price)"
有关此的更多信息 - 在整个对象绑定上,请参见https://github.com/mvvmcross/mvvmcross/wiki/databinding
我几天前必须做类似的事情:它相当令人费解:
<controls:OptionItemControl
ItemTitle="{Binding Path=AccountSettings, Converter={StaticResource ContentItemConverter}, Mode=OneTime,
ConverterParameter=DataRoaming.Text}"
ItemInfo="{Binding Path=AccountSettings, Converter={StaticResource ContentItemConverter}, Mode=OneTime,
ConverterParameter=DataRoaming.Info}"
ItemValue="{Binding AccountSettings.DataRoaming, Mode=TwoWay}"
/>
所以我的ViewModel具有属性帐户集,该类别具有另一个具有属性dataRaming的类,该属性具有.text,.info
的几个属性我确定可以做我需要做的事情的方法要容易得多,但是我想从使用魔术字符串中获得。我最后没有得到它,但至关重要的是,这使我更容易阅读和弄清楚。
因此,在转换器中,我得到参数,将其拆分;然后从值类型中,我可以浏览属性并从类获取实际值。当然,我也可以称为一种方法。
希望这可以给您一些想法。