【问题标题】:Mvvmcross: Failed to create target binding for binding TextColorMvvmcross:无法为绑定 TextColor 创建目标绑定
【发布时间】:2015-11-04 20:34:18
【问题描述】:

我正在构建一个 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:Warning: 66.81 无法为 AnswerTextColor 绑定 TextColor 创建目标绑定

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

当我最初构建它时,我也遇到了这个问题并浏览了以下链接:

MvvmCross Failed to create target binding for EditingDidBegin on iPhone

所以我在下面添加了这个,它在很大程度上解决了我的问题,但导致了我现在所处的位置。

例如包含类似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 = ""; };
}

这是我的第一个应用程序,因此我们将不胜感激。希望这是我错过的简单事情。

【问题讨论】:

  • 将 NativeColorConverter 添加到 LinkerPleaseInclude.cs 是否有效?
  • 我不确定我是否理解。能举个例子吗?
  • 您将 NativeColorConverter 称为字符串。也许链接器删除了这个类。因此,您应该在 Include 方法中添加类似 new NativeColorConverter() 的内容,以防止链接器忽略该类。不知道能不能解决你的问题。
  • 感谢 cmets,但我从 Xamarin 网站发布了答案。

标签: xamarin uitextfield mvvmcross


【解决方案1】:

感谢 PaulFarrow 提供的这一点,但我按照我发布并添加到 LinkerPleaseInclude 的链接中的操作进行操作,但也需要将其添加到其中

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多