绑定MvvmCross UITextView TextColor

时间:2015-02-19 01:09:52

标签: xamarin uitextview mvvmcross

将我的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" />

1 个答案:

答案 0 :(得分:0)

也许这会回答你的问题:https://github.com/MvvmCross/MvvmCross/issues/902

我遇到了同样的问题但是使用了UILabel和UIView元素的布尔绑定。一个简单的解决方法是在您的类中将UI-Element声明为private property(在您的情况下:userPromptTextView)。

通过这种解决方法,GC不会消除您的元素,并且绑定应该有效。

其他信息:Is this a bug in MonoTouch GC?