gpt4 book ai didi

data-binding - Xamarin 将双向数据绑定(bind)到 RealmObject 引发错误

转载 作者:行者123 更新时间:2023-12-04 05:06:08 28 4
gpt4 key购买 nike

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

当双向数据绑定(bind)打开 View 时会抛出错误

Cannot set values outside transaction



包括

InnerException {Realms.RealmOutsideTransactionException: Cannot set values outside transaction at Realms.RealmObje…} Realms.RealmOutsideTransactionException



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

默认情况下,模式 = 双路。我必须将其更改为 Mode=OneWay 才能让 View 加载数据绑定(bind)数据。

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

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

最佳答案

当您有双向绑定(bind)时,Realm需要有一个活跃的Transaction如 QuickJournal 示例的 JournalEntryDetailsPage 所示.

I'm not sure why the data binding is wanting to set the value back on the RealmObject when its loading the View that shows the Entry object that its databound to.



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

关于data-binding - Xamarin 将双向数据绑定(bind)到 RealmObject 引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977454/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com