Mvvmcross:无法为绑定TextColor

时间:2015-11-04 20:34:19

标签: xamarin uitextfield mvvmcross

我正在构建一个Xamarin ios应用程序并且已经测试了一段时间但是在发布模式下遇到了问题测试。当用户开始在文本字段中输入答案时,我会更改文本字段的背景颜色和文本颜色。这是我的代码:

set.Bind (currencyText).For (x => x.BackgroundColor).To (vm => vm.AnswerViewColor).WithConversion ("NativeColor");
set.Bind (currencyText).For (x => x.TextColor).To (vm => vm.AnswerTextColor).WithConversion ("NativeColor");

在我测试的任何设备上的调试模式下工作正常。在模拟器上的调试模式下,我得到下面的错误,虽然背景颜色变化很好,文本颜色不会改变:

  

MvxBind:警告:66.81无法为AnswerTextColor创建绑定TextColor的目标绑定

在发布模式下它似乎不起作用,因为我的文字颜色保持白色所以我的假设是我也得到相同的错误/警告。有任何想法吗?此外,我尝试将我的链接器行为从“仅链接SDK程序集”更改为“链接所有程序集”,并且在发布模式下也没有任何帮助。

当我最初构建此信息时,还有其他一些信息我也遇到了这个问题,并在下面的链接中运行:

MvvmCross Failed to create target binding for EditingDidBegin on iPhone

所以我在下面添加了这个,这大部分解决了我的问题但导致了我现在所处的位置。

  

e.g。包含像https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-38-Maps/Mappit.Touch/LinkerPleaseInclude.cs这样的文件,其方法如下:

public void Include(UITextField textField)
{
    textField.Text = textField.Text + "";
    textField.EditingChanged += (sender, args) => { textField.Text = ""; };
    textField.EditingDidBegin += (sender, args) => { textField.Text = ""; };
    textField.EditingDidBegin -= (sender, args) => { textField.Text = ""; };
}

这是我的第一个应用程序,所以任何帮助将不胜感激。希望这是我错过的一件容易的事。

1 个答案:

答案 0 :(得分:5)

非常感谢PaulFarrow关于这一点,但我在发布的链接中做了如下操作并添加到LinkerPleaseInclude中,但是还需要将它添加到它中

public class LinkerIncludePlease
{
     public void Include(UITextField textField)
     {
         textField.TextColor = textField.TextColor;
     }
}