因为我们知道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是明智的吗?即使是这种情况,它也只回答了我的部分问题。
希望有些人之前遇到过这个或者有一个有趣的问题,所以任何见解都会受到赞赏。谢谢!
答案 0 :(得分:0)
我刚尝试使用StackPanels的StackPanel(即没有数据绑定)的简单示例,并且看起来流向对垂直堆叠的面板没有影响(如果有TopToBottom或BottomToTop选项会很好)。
我认为你的数据模型需要(概念上)列表列表,然后你需要创建ItemsControls的ItemsControl(我知道布局很痛苦但是可以做到),你必须向后排序外部列表,以便生成控件C,B,A(因为FlowDirection在垂直方向上不执行任何操作)。
答案 1 :(得分:0)
结束从StackPanel
继承,并为ItemPanel
自定义撤消它。在弄清楚几乎感到尴尬的寻求帮助之后,这样一个愚蠢的解决方案哈哈。非常感谢任何人花了一些时间来考虑它。