Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从Datagrid中编辑/添加/删除项目_.net_Wpf_Data Binding - Fatal编程技术网

.net 如何从Datagrid中编辑/添加/删除项目

.net 如何从Datagrid中编辑/添加/删除项目,.net,wpf,data-binding,.net,Wpf,Data Binding,如何从Datagrid中编辑/添加/删除项目 我已经用数据表实现了它 DataTable _datatable = new DataTable(); DataRow _datarow; 我已经在这里创建了数据,我想问一下,如何修改这些数据 如何从datagrid获取值并与之交互 . List List=\u datatable.AsEnumerable.ToList 我已经把它转换成了列表,我从那里得到了数据?这是个好主意 我希望能够从中更新、插入和删除。如果不

如何从Datagrid中编辑/添加/删除项目 我已经用数据表实现了它

        DataTable _datatable = new DataTable();
        DataRow _datarow;
我已经在这里创建了数据,我想问一下,如何修改这些数据 如何从datagrid获取值并与之交互 . List List=\u datatable.AsEnumerable.ToList

我已经把它转换成了列表,我从那里得到了数据?这是个好主意


我希望能够从中更新、插入和删除。

如果不使用mvvm,只需将Datagrid的itemsSource设置为datatable即可

 this.dgMyDataGridControl.ItemsSource= this._mydatatable;
别忘了将datagrid的属性设置为您想要的CanUserAddRows


当然,这只是更新、删除和修改数据表中的数据,而不是数据库。

您可以使用简单的对象列表。然后创建一个DataGrid并将DataRecordList绑定到它。 前端应如下所示:

<Window x:Class="TestDataGrid.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Data="clr-namespace:TestDataGrid"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <ResourceDictionary>
        <Data:DataRecordList x:Key="DataSource"/>
        <CollectionViewSource x:Key="DataCollection" Source="{StaticResource DataSource}"/>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <DataGrid Name="GridData"
        ItemsSource="{Binding Source={StaticResource DataCollection}}"
        AutoGenerateColumns="False"
        CanUserDeleteRows="True" CanUserAddRows="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="ID" Binding="{Binding Path=ID}"/>
            <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
            <DataGridTextColumn Header="SomeValue" Binding="{Binding Path=SomeValue}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</Window>
namespace TestDataGrid
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }

    public class DataRecord
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string SomeValue { get; set; }
    }

    public class DataRecordList : List<DataRecord>
    {
        public DataRecordList()
        {
            this.Add(new DataRecord() { ID = 1, Name = "Johnny", SomeValue = "Dummy" });
            this.Add(new DataRecord() { ID = 2, Name = "Grace", SomeValue = "Foo" });
            this.Add(new DataRecord() { ID = 3, Name = "Steve", SomeValue = "Bar" });
        }
    }
}
后面的代码是这样的:

<Window x:Class="TestDataGrid.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Data="clr-namespace:TestDataGrid"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <ResourceDictionary>
        <Data:DataRecordList x:Key="DataSource"/>
        <CollectionViewSource x:Key="DataCollection" Source="{StaticResource DataSource}"/>
    </ResourceDictionary>
</Window.Resources>
<Grid>
    <DataGrid Name="GridData"
        ItemsSource="{Binding Source={StaticResource DataCollection}}"
        AutoGenerateColumns="False"
        CanUserDeleteRows="True" CanUserAddRows="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="ID" Binding="{Binding Path=ID}"/>
            <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
            <DataGridTextColumn Header="SomeValue" Binding="{Binding Path=SomeValue}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</Window>
namespace TestDataGrid
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }

    public class DataRecord
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string SomeValue { get; set; }
    }

    public class DataRecordList : List<DataRecord>
    {
        public DataRecordList()
        {
            this.Add(new DataRecord() { ID = 1, Name = "Johnny", SomeValue = "Dummy" });
            this.Add(new DataRecord() { ID = 2, Name = "Grace", SomeValue = "Foo" });
            this.Add(new DataRecord() { ID = 3, Name = "Steve", SomeValue = "Bar" });
        }
    }
}
您可以添加行、删除行、甚至编辑行以及对列进行排序和重新排序。 享受 日轮