Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对网格上显示的多个对象使用FRP(和不可变集合)_C#_Wpf_Reactive Programming_Frp - Fatal编程技术网

C# 对网格上显示的多个对象使用FRP(和不可变集合)

C# 对网格上显示的多个对象使用FRP(和不可变集合),c#,wpf,reactive-programming,frp,C#,Wpf,Reactive Programming,Frp,我最近一直在读关于玻璃钢的书,到目前为止我真的很喜欢这个想法。有几件事我没有找到太多的信息,其中之一是:例如,如果我使用WPF网格来显示我的数据(有数千行),我应该如何将更新连接到网格 我应该注意到,我对WPF的经验也相对较少,但据我所知,这通常可以通过将网格绑定到ObservableCollection来解决,如果我理解正确,它非常擅长处理更新(意味着更新、添加或删除单个项的处理性能良好) 因此,如果我想将FRP用于不可变集合,这是不适用的。但还有什么其他选择呢?如果我用每一次更新、添加或删除

我最近一直在读关于玻璃钢的书,到目前为止我真的很喜欢这个想法。有几件事我没有找到太多的信息,其中之一是:例如,如果我使用WPF网格来显示我的数据(有数千行),我应该如何将更新连接到网格

我应该注意到,我对WPF的经验也相对较少,但据我所知,这通常可以通过将网格绑定到
ObservableCollection
来解决,如果我理解正确,它非常擅长处理更新(意味着更新、添加或删除单个项的处理性能良好)

因此,如果我想将FRP用于不可变集合,这是不适用的。但还有什么其他选择呢?如果我用每一次更新、添加或删除来重新填充整个网格,我猜性能相当糟糕


我也没有真正的示例代码来展示,因为坦率地说,这是一件非常基本的事情,如果不知道如何首先做,我就不知道从哪里开始。虽然我在这里专门讨论C#和WPF,但我也对一般原则感兴趣。

如果您只有不可变的集合,并且希望在WPF UI中模拟集合的可变性,那么您只能在每次更新时更改ItemsSource。在我看来,这种情况只有缺点,因为您必须涵盖为
可观察集合
自动完成的功能-选定项持久性、滚动位置等。嗯,好吧,所以我想这意味着我真的应该选择一个或另一个-不可变集合或轻松绑定到UI。