将我的Xamarin iOS应用程序移植到统一的api。我正在使用MvvmCross,我无法再使用TextColor
绑定到UITextView
。我收到以下警告:
MvxBind:警告:39.30无法为绑定创建目标绑定 TextColor for EditableTextColour
我的观点:
set.Bind(userPromptTextView).For(up => up.BackgroundColor).To(vm => vm.EditableBackgroundColour);
set.Bind(userPromptTextView).For(up => up.TextColor).To(vm => vm.EditableTextColour);
视图模型:
public UIKit.UIColor EditableTextColour
{
get
{
return Question.IsEditable ? UIKit.UIColor.Black : UIKit.UIColor.Black.ColorWithAlpha(0.5f);
}
}
请注意,BackgroundColor
绑定正确,但我认为它绑定到UIView
。
我正在使用MvvmCross 3.5.1-alpha1并在iPad(iOS 8.1.3)上进行测试。
NuGet包
<package id="MvvmCross" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.HotTuna.CrossCore" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.HotTuna.MvvmCrossLibraries" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.HotTuna.Plugin.Color" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.HotTuna.Plugin.Visibility" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.HotTuna.StarterPack" version="3.5.1-alpha1" targetFramework="xamarinios10" />
<package id="MvvmCross.PortableSupport" version="3.5.1-alpha1" targetFramework="xamarinios10" />
答案 0 :(得分:0)
也许这会回答你的问题:https://github.com/MvvmCross/MvvmCross/issues/902
我遇到了同样的问题但是使用了UILabel和UIView元素的布尔绑定。一个简单的解决方法是在您的类中将UI-Element声明为private property
(在您的情况下:userPromptTextView
)。
通过这种解决方法,GC不会消除您的元素,并且绑定应该有效。