我正在嘗試使用MvvmCross的值轉換器更改iOS標籤的文本顏色。下面的代碼一點點(這是核心項目):Xamarin MvvmCross iOS Bool顏色ValueConverter不更改標籤文本顏色
public class BoolToColorValueConverter
: MvxValueConverter<bool, object>
{
protected override object Convert(bool value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
MvxColor mvxColor = null;
if(value)
mvxColor = new MvxColor(255, 0, 0);
else
mvxColor = new MvxColor(0, 0, 0);
var nativeColorConv = Mvx.Resolve<IMvxNativeColor>();
return nativeColorConv.ToNative(mvxColor);
}
}
,然後在我的綁定:
this.CreateBinding(LabelName).For(s => s.TextColor).To((MyViewModel vm) => vm.BooleanPropertyThatChangesAtSomePoint).WithConversion("BoolToColor").Apply();
但由於某些原因,當從真到假布爾屬性更改,我看到綁定到該屬性的其他字段正確更改,但不是標籤的文本顏色。
我見過@slodge視頻,教程,下載的git示例,但仍無法使其工作。我認爲它與轉換器沒有返回正確的值有關,因爲我放置了斷點並且轉換器已被觸發。有任何想法嗎?
感謝盧克和感謝編輯。我確實安裝了MvxColors插件。我不太贊同LinkerPleaseInclude方法。我無法在我的項目中找到該類,因此我認爲它必須手動添加。我遵循使用MvxColorValueConverter的方法,但是當應用程序啓動時出現錯誤。我會通過你的建議,並讓你知道它是如何去。 – Ph0b0x
實際上使用MvxColor方法取得了訣竅。我錯過了IOS項目上的Mvx Color Plugin。我在Core項目中擁有它,但不是在IOS項目中。非常感謝盧克。 – Ph0b0x
使用Mvx插件時的一般經驗法則是確保將插件添加到Core和Platform項目中。插件通常具有可移植的界面和特定於平臺的實現,因此添加兩者可確保其正常工作。 – Kiliman