网格与“解耦”滚动(又名“冻结”行和列)

时间:2010-08-02 05:52:32

标签: .net wpf

大致上,这是我想要实现的目标:

illustration http://namefa.mine.nu/alignmentproblem.png

绿色部分是固定的 橙色(或粉红色?)部分的单元格是可编辑的 蓝色部分中的单元格也是可编辑的 [add fridge]按钮会添加另一列。

现在棘手的部分:
蓝色+绿色部分应该一起垂直滚动 蓝色+橙色部分应该一起水平滚动 (暗红色的东西代表滚动条)

我们可以看到这背后的逻辑:我必须能够编辑任何(合理)数量的冰箱和产品的产品数量,即使它们并非全部适合屏幕。但我绝不能滚动冰箱名称或产品名称。

我想在XAML中完成这个布局,绑定(ObservableCollection<Fridge>立刻跳到脑海)。编写自定义转换器也是可以接受的。重点是避免以编程方式创建/管理UI元素。

我以前的想法和实验中的一些考虑因素:

  1. 无法使用Grid,因为它无法从序列中自动生成列

  2. 一系列嵌套ItemsControl可以工作,但后来我遇到了对齐来自不同序列的项目的问题(即蓝色单元格中有橙色或绿色单元格 - 取决于嵌套的方向) - 请参阅我的other question

  3. 调整冰箱柱尺寸的奖励积分。到目前为止,我只找到了GridSplitter,但它只适用于网格。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,我可以接受它:这被称为“冻结的列”和“冻结的行”而不是,行开箱即可开箱即用。