【发布时间】:2013-11-08 02:18:12
【问题描述】:
我想使用可编辑的数据网格来添加、编辑数据。 wpf可以吗?谁能举个例子?
【问题讨论】:
-
为什么不呢?数据网格正是为此目的而制作的。这是一个很好的链接,可以帮助您入门:wpftutorial.net/DataGrid.html
我想使用可编辑的数据网格来添加、编辑数据。 wpf可以吗?谁能举个例子?
【问题讨论】:
DataGrid 控件具有所有内置功能。您可以将属性 CanUserAddRows 设置为 true 以允许用户添加行。
DataGrid 默认情况下是可编辑的,其中每一列都有一个编辑控件,可让您编辑其值。默认情况下,DataGrid 会自动为您的 Model 中的每个属性生成列,因此您甚至不必定义它的列。
以下是一些不错的链接,其中包含您可以查看的详细示例:
http://wpftutorial.net/DataGrid.html
http://www.codeproject.com/Articles/30905/WPF-DataGrid-Practical-Examples
http://www.c-sharpcorner.com/UploadFile/mahesh/datagrid-in-wpf/
祝你好运
【讨论】:
ItemSource绑定到IEnumerable会导致数据无法编辑,我把IEnumerable改成List然后就可以正常编辑了
有一个如下的 Xaml
<Window x:Class="DatGrid.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"
xmlns:local="clr-namespace:DatGrid">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<StackPanel/>
<DataGrid ItemsSource="{Binding Path=Values}"></DataGrid>
</StackPanel>
</Window>
在 ViewModel 中很简单,如下所示
class ViewModel
{
public ObservableCollection<Example> Values
{
get;
set;
}
}
public class Example
{
public string A
{
get;
set;
}
public string B
{
get;
set;
}
}
在视图中,您总是可以看到一个空行,您只需单击并输入内容,然后按 Enter 即可更新到 ViewModel
【讨论】: