none
datagrid 新增行后,行高度的问题 RRS feed

  • 问题

  • 我对 datagird.itemsoruce  增加一行之后,如果不赋值,则空行的高度非常非常的小。但没有找到控制行高度的属性,请问如何设置。请向这方面的问题查什么资料。
    • 已移动 Leo Liu - MSFT 2011年9月16日 5:45 Moved for better support. (发件人:Visual C#)
    2011年9月14日 11:03

答案

  • WPF的DataGrid?搞个Style就行了
    <data:DataGrid ItemsSource="{Binding}">
    	<data:DataGrid.Resources>
    		<Style TargetType="data:DataGridRow">
    			<Setter Property="MinHeight" Value="120"/>
    		</Style>
    	</data:DataGrid.Resources>
    	<data:DataGrid.Columns>
    	</data:DataGrid.Columns>
    </data:DataGrid>
    2011年9月16日 3:17
  • 你好,

    AceBear的方案通常是可行的。但是因为是通过一个隐式Style给DataGridRow设置MinWidth,如果你的代码中显式地给DataGridRow加过Style,那么这个隐式的Style就会不起作用。

    找到DataGridRow对应的Style并且加入

    <Setter Property="MinHeight" Value="100"/>
    

    应该就可以解决问题了。

    或者直接用以下代码

                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <Setter Property="MinHeight" Value="100"/>
                    </Style>
                </DataGrid.RowStyle>
    


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月23日 1:46
    版主

全部回复

  • 为什么是 datagird.itemsoruce 

    为什么不直接在数据源上添加?


    family as water
    2011年9月15日 2:31
  • 为什么是 datagird.itemsoruce 

    为什么不直接在数据源上添加?


    family as water

    itemsource不就是数据源吗?

    datagrid.itemsource = List<XX>;

    (itemsource as List<XX>>.Add();与 List<xx>.Add()有什么区别。好吧,按你说的,还不是高度很小。

    2011年9月15日 3:34
  • 应该是grid.datasource=xxx吧。

    直接添加xxx(比如表,加一行)。


    family as water
    2011年9月15日 14:23
  • WPF的DataGrid?搞个Style就行了
    <data:DataGrid ItemsSource="{Binding}">
    	<data:DataGrid.Resources>
    		<Style TargetType="data:DataGridRow">
    			<Setter Property="MinHeight" Value="120"/>
    		</Style>
    	</data:DataGrid.Resources>
    	<data:DataGrid.Columns>
    	</data:DataGrid.Columns>
    </data:DataGrid>
    2011年9月16日 3:17
  • 请问你的是WPF4的代码吗? 如果你对DataGrid进行了绑定,那么在绑定源中增加一行,界面应该有有一行增加,而且是正常高度。

    不过,不管怎样 AceBear 的方法总是可行的。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月16日 16:19
    版主
  • 谢谢,ms没用,我新增一个空行后,高度还是非常非常的小。
    2011年9月19日 3:49
  • 那就把你的代码给我们看一下,看着具体代码来说吧。
    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月19日 3:54
    版主
  • 你好,

    AceBear的方案通常是可行的。但是因为是通过一个隐式Style给DataGridRow设置MinWidth,如果你的代码中显式地给DataGridRow加过Style,那么这个隐式的Style就会不起作用。

    找到DataGridRow对应的Style并且加入

    <Setter Property="MinHeight" Value="100"/>
    

    应该就可以解决问题了。

    或者直接用以下代码

                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <Setter Property="MinHeight" Value="100"/>
                    </Style>
                </DataGrid.RowStyle>
    


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月23日 1:46
    版主