DataGrid没有数据时缺少空行

时间:2012-05-24 21:32:48

标签: wpf datagrid

我正在研究WPF,我正在设计一个包含数据网格的控件,到目前为止一切顺利。

但是发生了一些奇怪的事情:如果我在数据网格中显示一行或多行,则数据网格最后显示用于添加新行的空白行,正常情况下,但如果数据网格中没有行,空白行也没有显示!

所以,我需要我的datagrid总是在空白行的末尾,无论是否数据。

我已尝试使用属性CanUserAddRowsIsReadOnly,但正如我之前所说,它仅在有一行或多行时才有效。

有人知道如何实现这个目标吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

你的意思是空行吗?看看wpf datagrid blank row missing

上的答案

这个基本设置确实显示一个空行(即使绑定的ItemsSource没有数据)

XAML

<Window x:Class="Demo.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525"
    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    >
<Grid>
    <DataGrid ItemsSource="{Binding Items}">
        <!--Must define columns if you need columns before bound collection has data-->
        <DataGrid.Columns>
            <DataGridTextColumn Header="Property"  Binding="{Binding Path=MyProperty}">   </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</Window>

背后的代码

public class Data
{
    public Data(string value) { MyProperty = value; }
    public Data() { }  // Must have default constructor
    public String MyProperty { get; set; }
}

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{        
    List<Data> _items = new List<Data>(); 
    public List<Data> Items
    {
        get { return _items; }
    }

    public MainWindow()
    {
        InitializeComponent();
   }