我正在研究WPF,我正在设计一个包含数据网格的控件,到目前为止一切顺利。
但是发生了一些奇怪的事情:如果我在数据网格中显示一行或多行,则数据网格最后显示用于添加新行的空白行,正常情况下,但如果数据网格中没有行,空白行也没有显示!
所以,我需要我的datagrid总是在空白行的末尾,无论是否数据。
我已尝试使用属性CanUserAddRows
和IsReadOnly
,但正如我之前所说,它仅在有一行或多行时才有效。
有人知道如何实现这个目标吗?
提前谢谢。
答案 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();
}