2011-08-11 52 views
0

我是wpf的新手,正在开发一个会计应用程序。我的问题是如此简单,但我很惊讶,我无法找到一个简单的解决方案,它是这样的:wpf中的datagrid的奇怪问题

我必须创建一个只有列应具有可见边框的数据网格。

我的意思是它应该是这个样子:

____________________ 
| col1 | col2| col3| 
|______|_____|_____| 
| r1 | r1 | r1 | 
| r3 | r2 | r2 | 
|  |  |  | 
|  |  |  | 
|  |  |  | 
|  |  |  | 
|______|_____|_____| 

我可以在底部绘制网格没有国界,但问题是,如果只有一个行的DataGrid中列边框将不会往下走,直到DataGrid的外边框我的意思是如果只有一排那是我的DataGrid的外观:

____________________ 
| col1 | col2| col3| 
|______|_____|_____| 
| r1 | r1 | r1 | 
| r3 | r2 | r2 | 
|______|_____|_____| 
|     | 
|     | 
|     | 
|__________________| 

这很容易理解,因为只有一列,但我想是多少无关行应该有线接触到数据网格的底部边框,是否有任何简单的方法让他?

还有一个问题,那是我想被选中第一行,每当加载的形式集中,但无论我怎么努力...它仍然没有得到解决......

回答

1

的一种方式可能是获得使用this后DataGrid中的最后一行,并设置它的高度

height = DataGridHeight - Height of all rows except last one

您可能还需要减去像DataGridHeaderHeight值。

关于你的第二个问题..你有没有尝试将DataGrid的SelectedIndex设置为0在DataGrid的加载事件中?

+0

它可能工作,但不会违背MVVM模式,因为我们正在控制来自后面代码的可视表示形式......并且当行数超过数据网格高度的可视区域时它也失败,即当datagrid中有一个滚动条..任何其他想法?? – Sudh

+0

首先不是,它不是针对MVVM的,因为我们只是在后面的代码中使用可视元素,我们没有做任何与数据或业务逻辑相关的事情。对于第二个问题,你可以检查滚动条是否存在,它存在,你不需要应用这个条件 –

+0

感谢您清除我对MVVM的疑问,但关于滚动条,如果它存在,我不应用条件,一旦用户滚动下来,它仍然会出现同样的问题......并且如果用户在最后一行插入了数据,那么还有一点不会看起来很紧张...... – Sudh