Xamarin表示对RealmObject的TwoWay数据绑定会引发错误

时间:2016-06-22 20:15:41

标签: data-binding xamarin.forms realm

我正在构建一个Xamarin Forms应用程序,并使用XAML数据绑定到一个ViewModel,该ViewModel包含存储在Realm数据存储区中的模型。

当双向数据绑定打开时,视图将抛出错误

  

无法在交易外设置值

其中包括

  

InnerException {Realms.RealmOutsideTransactionException:无法设置   交易之外的价值   Realms.RealmObje ...} Realms.RealmOutsideTransactionException

我不确定为什么数据绑定在加载显示其数据绑定到的Entry对象的View时,想要在RealmObject上设置值。

默认情况下,Mode = TwoWay。我必须将其更改为Mode = OneWay以获取加载数据绑定数据的视图。

这是一个错误吗? 根据这篇文章,这应该有效。

https://blog.xamarin.com/cross-platform-development-with-xamarin-forms-and-realm/

1 个答案:

答案 0 :(得分:0)

当你有双向绑定时,Realm需要有一个活跃的Transaction,如QuickJournal样本的JournalEntryDetailsPage所示。

  

我不确定数据绑定为什么要重新设置值   RealmObject在加载显示Entry对象的View时   它的数据绑定到。

这也让我很困惑。这是Xamarin Forms实现双向绑定的方式的一个怪癖。如果字符串属性为空,则它不会触发setter。但是,如果RealmObject的属性中存在值,则它似乎触发Xamarin.Forms.Platform.IOS.EntryRender:OnEditingChanged并尝试再次设置相同的值。我认为这是Xamarin Forms中的一个错误。它不应该将未更改的值传播回viewmodel。

相关问题