我们正在使用MVVMCross,我们无法将NSAttributedString绑定到UITextView。这很奇怪,因为相同的代码不使用BindingSet,也使用Bindig for Text属性而不是AttributedText
如上所述,这行代码没有绑定,TextView只显示默认文本:
set.Bind (TxtActivityText).For(txt => txt.AttributedText).To (vm => vm.Activity).WithConversion("ActivitySpanMessage");
...并输出以下警告: " MvxBind:警告:6.06无法创建目标绑定以绑定AttributedText for Activity"
虽然这条线路正常运行:
set.Bind (TxtActivityText).For(txt => txt.Text).To (vm => vm.Activity).WithConversion("ActivitySpanMessage"); // Works fine also binding to the default property
最后,不使用绑定也可以正常工作:
TxtActivityText.AttributedText = SpanMessageHelper.ConvertToAttributedString(ViewModel.Activity, null, null, null); // This function is the same I call in the ActivitySpanMessageConverter
有什么想法吗?这可能是个错误吗?
答案 0 :(得分:5)
这可能是因为Xamarin链接器不包含UITextView.AttributedText,因为它仅用于表达式。有关详情,请参阅此帖子:MvvmCross Failed to create target binding for EditingDidBegin on iPhone
您可以通过转到LinkerPleaseInclude.cs并更改您的UITextView包含方法来解决此问题:
public void Include(UITextView textView)
{
textView.Text = textView.Text + "";
textView.Changed += (sender, args) => { textView.Text = ""; };
// Add this line here
textView.AttributedText = new NSAttributedString();
}