2011-01-10 29 views
0

我在创建带有标题标签和文本框的DataGrid时遇到了一些问题(此时我甚至不完全确定这是可能的)。带有用于过滤的文本框的DataGrid列标题

这就是我想做的事:
我需要动态创建一个表(列数能够而且将会改变,所以电网需要动态创建,无法使用在XAML代码或类似的指定绑定) 。但是,所有列都将是文本列。

由于这些将是文本列,我想在文本框添加到每个报头,以便能够在DataGrid的数据的简单滤波。我不想将额外的文本字段添加到Silverlight页面的其他部分,因为我想尽可能保持紧凑。另外,由于列数是动态的,因此在DataGrid之上添加大量文本框也不会太好。 ;)

此外,如果可能的话,我想在每个标题中保留一个标签以显示列的名称。

到目前为止,我已经尝试添加一个TextBoxDataGridTextBoxColumnHeader但是当我这样做,在一个非常简单的Silverlight项目,整个DataGrid不会出现。

请帮忙。

编辑: 我看到了这个问题的答案:placing a text box inside the silverlight data grid column header

然而,答案本身并没有给我太多去(的例子是太短了,我不是XAML太好还有),CodePlex上的代码只是为Silverlight页面添加了额外的字段。它没有解决动态创建DataGrid的问题。

回答

1

确定,这里就是我这样做,解决了我的问题......我 不得不用Style以实现具有每个列标题中额外的文本框,并填写每个由此产生TextBoxTag属性的功能稍后找出哪一列已被更改。

+0

我有你的问题,我不知道如何找出哪些列已经被改变了吗?你怎么填满你的文本框的标签用? –

+0

由于您使用的是“样式”,因此您无法输入固定的“标签”。这是毫无意义的。我使用了'Tag =“{Binding}”',因此您应该获得对列标题内容的引用。 – Shaamaan

+0

Shaamaan:谢谢,但我希望我能得到refrence到coulmn名称,因为列标题波斯和我需要的英文名称,有没有什么办法绑定列名称标记? –