WPF数据网格内联编辑

时间:2015-03-10 14:48:53

标签: c# wpfdatagrid wpf-4.0

我已经开始使用WPF和C#来帮助我的公司设计一个小应用程序。目标是能够查找零件号,在网格视图中显示所有可能的匹配,最后能够更新网格中的零件。数据是从SQL表上的单个表中提取的。

我从其他示例中提取了大部分代码,并将其付诸实践。但是我对后续步骤感到困惑,以便让编辑工作。

代码如下:

XML CODE

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

1 个答案:

答案 0 :(得分:0)

我宁愿使用ObservableCollection来绑定而不是数据表, 我在WPF找到了, 如果你使用像ListView甚至ListBox这样的控件,它会让生活变得更轻松, 在那里你可以更自由地根据自己的需要自定义控件。

一定要使用INotifyPropertyChanged,基本样本会是这样的......

您希望与listview一起使用的是gridview的数据完成或CellTemplte。

以下是您http://www.wpf-tutorial.com/datagrid-control/custom-columns/

的示例

^ - ^