2011-08-15 24 views
2

我已经有这种情况1000次了: 我有2列和许多行的网格。大多数情况下,我有TextBlock在第一列和TextBox在第二但不总是。现在,当我有50行,并决定将第49行移动到网格中的第一行,并且我不想交换行时,我想将它插入到第一个位置。然后,我需要更改所有其他控件的Grid.Row和Grid.Column的值。这让我疯狂。我怎样才能让这更容易?简单的方法来改变WPF中的很多控件中的Grid.Row和Grid.Column

+1

这是一个运行时行为还是你的意思是你在开发时在XAML中做的事情? – flq

+0

为什么你只是不交换Grid.Row =“0”的值Grid.Row =“49”? – sll

回答

0

如果您格式化您的XAML代码好了,你可以按住Alt键关键在每一行选择和削减Grid.Row =“X”并按住Alt键选择并将其粘贴一行。

例如。

<TextBlock Grid.Row="0" Text="a"/> 
<TextBlock Grid.Row="1" Text="b"/> 
<TextBlock Grid.Row="2" Text="c"/> 
<TextBlock Grid.Row="3" Text="d"/> 

您想将<TextBlock Grid.Row="3" Text="d"/>移动到顶部。只要持有 “Alt键” 键来选择和复制:再次

Grid.Row="1" 
Grid.Row="2" 
Grid.Row="3" 

使用Alt键键粘贴它们来代替原来

Grid.Row="0" 
Grid.Row="1" 
Grid.Row="2" 

所以你顺利拿到

<TextBlock Grid.Row="1" Text="a"/> 
<TextBlock Grid.Row="2" Text="b"/> 
<TextBlock Grid.Row="3" Text="c"/> 
<TextBlock Grid.Row="3" Text="e"/> 

然后只需将<TextBlock Grid.Row="3" Text="d"/>移到顶部并将其更改为Grid.Row为0

+0

过于依赖格式化也取决于你如何对事物进行排序,例如按行或按列。 –

+0

@ H.B。同意,如果OP说'我已经有这种情况1000次了',我认为现在是适应一种容易修改的格式的时候了。 – Bolu

0

您可以使用像this question中概述的标记扩展名,如果您之后需要插入一个应该更少麻烦的新行。

0

这听起来像你会更好使用ListBoxListView

+0

实际上它应该可能是一个'ItemsControl',因为显然不需要选择。 –

+0

@ H.B。是的你是对的,但我正在努力寻找一个简单的例子来链接。 –

相关问题