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 的好书、网站等

WPF 数据网格内联编辑

我宁愿使用ObservableCollection而不是数据表来绑定,我在 WPF 中发现,如果您使用列表视图甚至列表框等控件,它会使生活变得轻松得多,在这里,您可以更自由地根据自己的需要自定义控件。

一定要使用INotifyPropertyChanged,一个基本的例子是这样的.....

你想与列表视图一起使用的是网格视图的datatemplete或CellTemplte。

这是给您的示例 http://www.wpf-tutorial.com/datagrid-control/custom-columns/

^-^