wpf和c#可写数据网格

时间:2017-11-22 13:18:54

标签: c# wpf datagridview datagrid

我想创建一个允许用户输入数据的DataGridView工作表。

下面是我的datagrid的xaml代码

<DataGrid AutoGenerateColumns="True" 
    Height="710" 
    HorizontalAlignment="Left" 
    Name="flowgrid" 
    VerticalAlignment="Top" 
    Width="1000" Margin="181,91,0,0" SelectionChanged="dataGrid1_SelectionChanged">

    <DataGrid.Columns >
        <DataGridTextColumn Header="Account Details" 
            x:Name="value1" IsReadOnly="True"   MinWidth="180" />
        <DataGridTextColumn Header="Due Date"   MinWidth="100" />
        <DataGridTextColumn Header="Standard Amount"   MinWidth="100" />
        <DataGridTextColumn Header="Current"   MinWidth="100" />
        <DataGridTextColumn Header="Week 1"  MinWidth="100" />
        <DataGridTextColumn Header="Week 2"  MinWidth="100" />
        <DataGridTextColumn Header="Week 3"  MinWidth="100" />
        <DataGridTextColumn Header="Week 4"  MinWidth="100" />
        <DataGridTextColumn Header="After"  MinWidth="150" />
    </DataGrid.Columns>
</DataGrid>

2 个答案:

答案 0 :(得分:1)

您必须将用户要编辑的单元格(或整个DataGrid)的IsReadOnly属性设置为False

IsReadOnly="False"

此外,如果您想让用户添加新行,您可以将CanUserAddRows属性设置为True

CanUserAddRows="True"

要将数据输入dataGrid,我这样做: 1-清空xaml文件中的dataGrid: 2-使用标题和数据创建Datatable对象 3-将其设置为datagrid的ItemSource

XAML:

<DataGrid Name="dataGrid"></DataGrid>

VB:

Dim inputDataDB As DataTable
inputDataDB = getInputData()

dataGrid.ItemsSource = inputDataDB .DefaultView

希望有所帮助

答案 1 :(得分:0)

为了能够编辑DataGrid中的项目,您需要将其ItemsSource属性设置为IList

您不能将项目直接添加到Items属性,如下所示:

flowgrid.Items.Add(new Account());

相反,您应该设置ItemsSource属性:

flowgrid.ItemsSource = new List<Acccount>() { ... };