Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Wpf 如何包装并行项控件?_Wpf_Xaml_Itemscontrol - Fatal编程技术网

Wpf 如何包装并行项控件?

Wpf 如何包装并行项控件?,wpf,xaml,itemscontrol,Wpf,Xaml,Itemscontrol,我有两个彼此平行的ItemsControl。第一个是一组具有属性名称的文本块,第二个是一组具有属性值的文本框 Property1 Value1 Property2 Value2 Property3 Value3 " " 在某些情况下,这个清单会很长 是否有可能在某一点中断列并“包装”两个ItemsControl,以便它们在同一容器中开始两个与前两个列平行的新列 我对这个问题的理解是,您正在动态创建Propertyn、Valuen TextBlocks

我有两个彼此平行的ItemsControl。第一个是一组具有属性名称的文本块,第二个是一组具有属性值的文本框

Property1   Value1

Property2   Value2

Property3   Value3

   "          "
在某些情况下,这个清单会很长


是否有可能在某一点中断列并“包装”两个ItemsControl,以便它们在同一容器中开始两个与前两个列平行的新列

我对这个问题的理解是,您正在动态创建Propertyn、Valuen TextBlocks

在WrapPanel控件中主持整个事件

对于动态创建的每对文本块,创建一个新的网格控件,并将两个文本块放置在此网格控件中,将网格控件放置在WrapPanel控件中


在Pavel的评论之后编辑,我意识到您目前将两个列表作为两个单独的控件。我的解决方案提出了一种完全不同的方法。

我很有信心这是不可能做到的。这甚至不是特定于ItemsControl的-您的问题实际上可以归结为,如何使用两个单独的WPF控件,并使它们的子控件以交错方式显示?。它就是不能这样工作——毕竟,ItemsControl仍然是一个UIElement,并且具有定义良好的宽度和高度。在有两个交叉项控件的示例中,每对控件的宽度是多少?

每对控件的宽度是多少?他这里总共只有两个ItemControl。@Paul:哎呀,我看错了这个问题。我在想每一对文本块,但你是对的,它们只是两个单独的列表。在研究实现这一点的黑客示例之前,我不确定这是否可能,甚至-为什么需要两个单独的ItemControl?只有一个有两列有什么问题?每个ItemsControl都绑定到不同的ObservableCollection。在ItemsControl中是否可以有一个复合ItemsSource来创建2列?您完全可以推出自己的可观察集合,该集合将来自其他两个集合的项聚合为一对,您的项中始终有1对1的匹配,对吗?。然而,这可能是一个不同的问题。是的,他们总是1:1。我要做的是继续并将属性和值属性合并到一个对象中:myObject。然后,我将设置与ItemsControl Path=myObservableCollection的绑定,然后使用textblock Path=PropertyN和textboxPath=ValueN模板一个水平堆栈面板。我将ItemsPanelTemplate设置为垂直包装,这将完成我需要做的事情。谢谢你的意见。