【发布时间】:2018-07-30 03:25:54
【问题描述】:
我使用 Realm 作为我的主数据库和同步引擎,我的问题是如何进行实时搜索查询?
例如当我使用时
var _age= 7;
Instance.All<Dog>().Where(d => d.Age == _age).AsRealmCollection();
并将我的列表视图绑定到它,当我更改_age 变量时,我需要更新我的视图。换句话说,我想对我的数据库进行“动态”查询。当我想寻找不同年龄的“狗”时,我希望我的观点得到更新。但是当我再次运行此查询并将新集合分配给 ViewModel 时,我的视图不会更新。
我该怎么办?
更新:
您可以在此处获取示例代码,以便重现此问题: https://github.com/Mohsens22/RelamTest
另外我必须告诉你IRealmCollection<T> 默认实现INotifyPropertyChanged,所以如果你用“写事务”将任何项目添加到集合中,视图将被更新。更多信息可以找到HERE
【问题讨论】:
-
对于 ListView,
ObservableCollection可用于动态更新源,我无法使用此段代码重现您的问题,您能否分享一个可以重现此问题的简单示例? -
@NicoZhu-MSFT 我添加了一个包含更多细节的示例代码。请看一下
-
请尝试使用两路模型
<ListView x:Name="itemListView" ItemsSource="{x:Bind Dogz,Mode=TwoWay}">。 -
我试过了。没有结果。
-
在添加
Mode=TwoWay之前,Change看起来不起作用。添加Mode=TwoWay后,按钮在我身边有效。