WPF-DataGrid增删改查绑定数据源

Xaml

    <DataGrid Height="200"
                               Name="dataGrid1" Margin="5,0,5,0" VerticalAlignment="Top" AlternationCount="2" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" IsReadOnly="True" RowHeaderWidth="0" SelectionMode="Single"> <DataGrid.Columns> <DataGridTextColumn Width="8*" Header="账号" Binding="{Binding Name}">DataGridTextColumn> <DataGridTemplateColumn Width="2*" Header="状态" > <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Margin="0,0,0,0" Foreground="#666666" Text="{Binding Age}" /> DataTemplate> DataGridTemplateColumn.CellTemplate> DataGridTemplateColumn> DataGrid.Columns> DataGrid> 

建立实体类

    public class User : INotifyPropertyChanged
    {
        private string name; public string Name { get { return name; } set { name = value; OnPropertyChanged("Name"); } } public string Age { get; set; } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } 

增删改

        private void add_Click(object sender, RoutedEventArgs e) { //修改数据源后需手动重新赋值 datalist.Add(new User ()); dataGrid1.ItemsSource = null; dataGrid1.ItemsSource = datalist; } private void delete_Click(object sender, RoutedEventArgs e) { if (dataGrid1.SelectedIndex >= 0) { //修改数据源后需手动重新赋值 datalist.RemoveAt(dataGrid1.SelectedIndex); dataGrid1.ItemsSource = null; dataGrid1.ItemsSource = datalist; } } private void update_Click(object sender, RoutedEventArgs e) { if (dataGrid1.SelectedIndex >= 0) { //修改前台后数据源也会一起改变 SubRowsId().Name = "update"; } } #region 获取选中行的原始值 ///  /// 获取选中行的原始值 ///  ///  private User SubRowsId() { return (User)dataGrid1.SelectedItem; } #endregion

你可能感兴趣的:(WPF-DataGrid增删改查绑定数据源)