我想将第三列绑定到CollectionBindingTwoWindow 的 DataContext 内的属性,而不是来自CollectionBindingOne.
通过在 WPF 中定义第二个集合,<DataGrid>假定本地范围或其他内容,并指向 ItemsSource () 的 Items 中的属性CollectionBindingOne。
<DataGrid DockPanel.Dock="Top" ItemsSource="{Binding CollectionBindingOne}" AutoGenerateColumns="False">
<DataGridTextColumn Header="One" Binding="{Binding PropOne}"/>
<DataGridTextColumn Header="Two" Binding="{Binding PropTwo}"/>
<DataGridComboBoxColumn Header="Three" ItemsSource="{Binding CollectionBindingTwo}"/>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
例如,这有效,因为ComboBox不在 a 内<DataGrid>:
<ComboBox IsEditable="True" ItemsSource="{Binding CollectionBindingTwo}"></ComboBox>
Run Code Online (Sandbox Code Playgroud) 我一直在开发一个 WPF .NET 4.5 应用程序,最初适用于小数据量,现在适用于 100 万甚至更多的更大数据量,当然我开始耗尽内存。数据来自 MS SQL DB,数据处理需要加载到本地数据结构,因为这些数据随后由 CLR 中的代码转换/处理/引用,需要连续且不间断的数据访问,但并非所有数据都具有立即加载到内存中,但仅在实际访问时才加载。作为一个小例子,反距离插值器使用此数据来生成插值地图,并且所有数据都需要传递给它以进行连续网格生成。
我重写了应用程序的某些部分来处理数据,例如在任何给定时间仅加载 x 行数,并实现有效的数据处理滑动窗口方法。然而,为应用程序的其余部分执行此操作将需要一些时间投入,我想知道是否可以有一种更强大和标准的方法来解决这个设计问题(必须有,我不是第一个)?
太棒了;C# 是否提供任何数据结构或技术来以中断方式访问大量数据,因此它的行为类似于 IEnumerable,但数据在实际访问或需要之前并不在内存中,还是完全由我来管理内存使用?我的理想是一种结构,它可以自动实现类似缓冲区的机制,并在访问数据时加载更多数据,并从已访问且不再感兴趣的数据中释放内存。也许像一些带有内部缓冲区的数据表?