C# UWP:使用领域进行实时查询和搜索
我使用Realm作为我的主数据库和同步引擎,我的问题是如何进行实时搜索查询 例如,当我使用C# UWP:使用领域进行实时查询和搜索,c#,uwp,realm,C#,Uwp,Realm,我使用Realm作为我的主数据库和同步引擎,我的问题是如何进行实时搜索查询 例如,当我使用 var _age= 7; Instance.All<Dog>().Where(d => d.Age == _age).AsRealmCollection(); var\u age=7; Instance.All().Where(d=>d.Age==\u Age).AsRealmCollection(); 并将我的listview绑定到它,我需要在更改\u age变量时更新我的视图。换
var _age= 7;
Instance.All<Dog>().Where(d => d.Age == _age).AsRealmCollection();
var\u age=7;
Instance.All().Where(d=>d.Age==\u Age).AsRealmCollection();
并将我的listview绑定到它,我需要在更改\u age
变量时更新我的视图。换句话说,我想对我的数据库进行“动态”查询。当我想寻找不同年龄段的“狗”时,我想更新我的视图。但当我再次运行此查询并将新集合分配给ViewModel时,我的视图不会更新
我该怎么办
更新:
在这里,您可以获得一个示例代码,以便重现此问题:
另外,我必须告诉您,默认情况下,
IRealmCollection
实现了INotifyPropertyChanged
,因此,如果您使用“写入事务”将任何项目添加到集合中,视图将被更新。可以找到更多信息我已经检查了您的代码示例,我发现Dogz
将使用Instance.All()重新创建,其中(z=>z.Age==nxt).AsRealmCollection()代码>。所以需要双向绑定模型
<ListView x:Name="itemListView" ItemsSource="{x:Bind Dogz,Mode=TwoWay}">
这是关于bind的,您可以参考。对于ListView,ObservableCollection
可以用来动态更新源代码,我无法使用此段代码重现您的问题,您能否共享一个简单的示例来重现此问题?@NicoZhu MSFT我添加了一个示例代码,其中包含一些详细信息。请看一看请尝试使用双向模式。我已经试过了。没有结果。在添加Mode=TwoWay
之前,Change
看起来不起作用。添加Mode=TwoWay
后,该按钮在我的一侧起作用。