我是WPF的新手。我试图复制我在WPF数据网格中的Winform datagridview中创建的功能。 当我使用必需的列创建datagridview并运行应用程序时,它提供了一个默认的空行。我开始在运行时编辑默认行,并向datagridview添加了更多行。但是当我在WPF中做同样的事情时,我没有得到默认的空行。因此,我无法向每个列添加内容。 我需要一个空的数据网格,我会在运行时使用它来获取用户的输入。 请帮帮我...!
此致 Dhana
请参阅下面的XMAL
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:col="clr-namespace:System.Collections;assembly=mscorlib"
Title="MainWindow" Height="450" Width="850">
<Window.Resources>
<col:ArrayList x:Key="CriteriaTypeList">
<col:DictionaryEntry Key="SINGLE" Value="SINGLE"/>
<col:DictionaryEntry Key="MULTIPLE" Value="MULTIPLE"/>
</col:ArrayList>
</Window.Resources>
<Grid>
<DataGrid HorizontalAlignment="Left" Margin="20,44,0,0" VerticalAlignment="Top" Height="350" Width="800" AutoGenerateColumns="False" CanUserReorderColumns="False" ItemsSource="{Binding}" FontSize="13" CanUserAddRows="True">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="CriteriaType" Width="1*" ItemsSource="{StaticResource CriteriaTypeList}"/>
<DataGridTextColumn Header="Priority" Width="1*"/>
<DataGridComboBoxColumn Header="Condition" Width="2*"/>
<DataGridTextColumn Header="(" Width="1*"/>
<DataGridTextColumn Header="Data Item" Width="3*"/>
<DataGridComboBoxColumn Header="Values" Width="1*"/>
<DataGridTextColumn Header=")" Width="1*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
答案 0 :(得分:0)
您尚未为任何列设置 Binding
。将Binding设置为底层ItemsSource中的某个属性,以便dataGrid知道在其行中显示什么,并且您将在dataGrid中看到空白行。
<DataGrid HorizontalAlignment="Left" Margin="20,44,0,0"
VerticalAlignment="Top" Height="350" Width="800"
AutoGenerateColumns="False" CanUserReorderColumns="False"
ItemsSource="{Binding}" FontSize="13" CanUserAddRows="True">
<DataGrid.Columns>
.....
<DataGridTextColumn Header="Priority" Width="1*"
Binding="{Binding PropertyName}"/> <-- HERE
.....
</DataGrid.Columns>
</DataGrid>