如何从Datagrid编辑/添加/删除项目 我使用数据表
实现了它 DataTable _datatable = new DataTable();
DataRow _datarow;
我已在这里发起数据,我想知道,我该如何修改这些数据 如何从datagrid获取值并与之交互 。 List list = _datatable.AsEnumerable()。ToList();
我已将其转换为List,我从那里获取数据?这是个好主意。
我希望能够更新,插入和删除。
答案 0 :(得分:0)
如果你不做mvvm,你可以简单地将Datagrid的itemsSource设置为你的数据表
this.dgMyDataGridControl.ItemsSource= this._mydatatable;
并且不要忘记将数据网格的属性设置为您想要的属性(CanUserAddRows,...)
这当然只是更新,删除和修改数据表中的数据,而不是数据库。
答案 1 :(得分:0)
您可以使用简单的对象列表。然后创建一个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" });
}
}
}
您可以添加行,删除行甚至编辑行以及对列进行排序和重新排序。 请享用。 JiKra