反向生成的项目& ItemsControl Collection的Tab顺序

时间:2013-04-17 21:44:40

标签: c# silverlight xaml itemscontrol

因为我们知道ItemsControl只会在其ItemsPanel中从上到下生成项目。如果是,我可以更改排序顺序,并以不同的方式生成它们,这是我的实际问题。

如果我ItemsControl使用ItemTemplate多个UIElement并使用StackPanel ItemsPanel作为a. 1 2 3 4 5 b. 6 7 8 9 10 c. 11 12 13 14 15 我最终得到类似的自然Tab键顺序;

FlowDirection

预计,我可以使用展示位置或ItemTemplate a. 5 4 3 2 1 b. 10 9 8 7 6 c. 15 14 13 12 11 来明显获得;

C. 11 12 13 14 15
B. 6  7  8  9  10
A. 1  2  3  4  5

现在,我的问题是如何实现? (以最有效的方式)订单更像;

{{1}}

现在,如果你正在思考.."呃, Shift + Tab dummy ..."我希望这是一个选择。要求只是使用制表符,并且从上到下反向生成集合,而不是从上到下生成集合,并且当它们在该控件中时,标签顺序相反。尝试劫持shift / tab事件并以某种方式将其转换为tab是明智的吗?即使是这种情况,它也只回答了我的部分问题。

希望有些人之前遇到过这个或者有一个有趣的问题,所以任何见解都会受到赞赏。谢谢!

2 个答案:

答案 0 :(得分:0)

我刚尝试使用StackPanels的StackPanel(即没有数据绑定)的简单示例,并且看起来流向对垂直堆叠的面板没有影响(如果有TopToBottom或BottomToTop选项会很好)。

我认为你的数据模型需要(概念上)列表列表,然后你需要创建ItemsControls的ItemsControl(我知道布局很痛苦但是可以做到),你必须向后排序外部列表,以便生成控件C,B,A(因为FlowDirection在垂直方向上不执行任何操作)。

答案 1 :(得分:0)

结束从StackPanel继承,并为ItemPanel自定义撤消它。在弄清楚几乎感到尴尬的寻求帮助之后,这样一个愚蠢的解决方案哈哈。非常感谢任何人花了一些时间来考虑它。