2010-01-22 62 views
1

我有一个用户控件,其用户希望让他们设置DataContext以绑定到对象列表。然而,在我的控制之下,我想要在Grid中显示该列表,但以一个非平凡的顺序显示。每个元素的列/行显示将由我将写入的一些代码决定。WPF绑定到列表

所以我不能在我的控制中做直接的数据绑定,我需要编写代码来读取DataContext,然后执行正确定位每个元素的处理。

一个相对的WPF新手会怎么做呢?我猜我不明白的部分是我的用户控件中的代码看起来像读取DataContext项目,以便我可以处理它们。

编辑:澄清:我想强调,我想绑定到XAML Grid元素,而不是一些其他类型的网格或DataGrid的。谢谢!

回答

3

实现该目标的一种可能方法是使用Converter。您可以创建一个Converter,将输入列表转换为订单已更改的另一个列表。然后你可以使用一个“常规”数据绑定来使用转换器。

+0

好的,这听起来不错,但我如何将Converter的输出绑定到网格,每个元素的位置以某种方式指定? –

+0

您可以将ListBox的ItemsPanelProperty更改为Grid。然后你可以创建一个数据绑定Grid.Row和Grid.Column属性的样式,并将其设置为ItemsContainerStyle。 – japf