WPF 数据网格内联编辑
本文关键字:编辑 网格 数据 数据网 WPF | 更新日期: 2024-11-08 20:35:49
我已经开始使用 WPF 和 C# 来帮助为我的公司设计一个小应用程序。 目标是能够查找零件编号,在网格视图中显示所有可能的匹配项,最后能够更新网格中的零件。 数据是从 SQL 表上的单个表中提取的。
我已经从其他例子中提取了大部分代码并让它工作。但是,我对接下来的步骤感到困惑,以便进行编辑。
代码如下:
XML代码
<Window x:Class="SQLtests.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="387" Width="783">
<Grid>
<DataGrid Name="Master" Margin="10,130,10,10" CanUserAddRows="True" CanUserDeleteRows="True" IsTabStop="True" IsReadOnly="False" ItemsSource="{Binding}"/>
<Button x:Name="Search" Content="Search" Height="19" Margin="140,30,535,311" Width="100" HorizontalAlignment="Left" VerticalAlignment="Top" Click="okSreach"/>
<TextBox x:Name="PartNumber" HorizontalAlignment="Left" Height="19" Margin="10,30,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="100"/>
</Grid>
C# 代码
namespace SQLtests
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void okSreach(object sender, RoutedEventArgs e)
{
string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
string CmdString = string.Empty;
using (SqlConnection con = new SqlConnection(ConString))
{
CmdString = "SELECT PartsNumber, NewGMNumber, Interchange1 FROM Rydell.Master WHERE NewGMNumber = " + "'" + PartNumber.Text + "'";
SqlCommand cmd = new SqlCommand(CmdString, con);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable("Master");
sda.Fill(dt);
Master.ItemsSource = dt.DefaultView;
}
}
}
}
一切正常,因为我能够搜索一个部分,但是我已经阅读了许多不同的来源和想法,让内联编辑工作是令人困惑的。我也可能过头了,因为我才刚刚开始,欢迎任何适用于 C# 和 WPF 的好书、网站等
我宁愿使用ObservableCollection而不是数据表来绑定,我在 WPF 中发现,如果您使用列表视图甚至列表框等控件,它会使生活变得轻松得多,在这里,您可以更自由地根据自己的需要自定义控件。
一定要使用INotifyPropertyChanged,一个基本的例子是这样的.....
你想与列表视图一起使用的是网格视图的datatemplete或CellTemplte。
这是给您的示例 http://www.wpf-tutorial.com/datagrid-control/custom-columns/
^-^