WPF 增删改查的例子
时间: 2023-07-07 16:08:34 浏览: 60
以下是一个简单的 WPF 增删改查的例子:
1. 创建一个 WPF 应用程序,命名为 "WpfCRUDExample"。在主窗口中添加以下控件:
```xml
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="ID:"/>
<TextBox Grid.Row="0" Grid.Column="1" x:Name="txtId"/>
<Label Grid.Row="1" Content="Name:"/>
<TextBox Grid.Row="1" Grid.Column="1" x:Name="txtName"/>
<Label Grid.Row="2" Content="Email:"/>
<TextBox Grid.Row="2" Grid.Column="1" x:Name="txtEmail"/>
<Button Grid.Row="3" Content="Add" x:Name="btnAdd" Click="btnAdd_Click"/>
<Button Grid.Row="3" Grid.Column="1" Content="Update" x:Name="btnUpdate" Click="btnUpdate_Click"/>
<Button Grid.Row="3" Grid.Column="2" Content="Delete" x:Name="btnDelete" Click="btnDelete_Click"/>
<DataGrid Grid.Row="4" x:Name="dgUsers" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Id}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Email" Binding="{Binding Email}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
```
2. 在代码中定义 User 类和 Users 列表:
```csharp
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
public class Users : ObservableCollection<User>
{
public Users()
{
Add(new User { Id = 1, Name = "John Doe", Email = "john.doe@example.com" });
Add(new User { Id = 2, Name = "Jane Doe", Email = "jane.doe@example.com" });
Add(new User { Id = 3, Name = "Bob Smith", Email = "bob.smith@example.com" });
}
}
```
3. 在窗口的构造函数中初始化数据和绑定 DataGrid:
```csharp
public MainWindow()
{
InitializeComponent();
DataContext = this;
Users = new Users();
dgUsers.ItemsSource = Users;
}
public Users Users { get; set; }
```
4. 实现增删改查的事件处理程序:
```csharp
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
int id = int.Parse(txtId.Text);
string name = txtName.Text;
string email = txtEmail.Text;
Users.Add(new User { Id = id, Name = name, Email = email });
}
private void btnUpdate_Click(object sender, RoutedEventArgs e)
{
int id = int.Parse(txtId.Text);
string name = txtName.Text;
string email = txtEmail.Text;
foreach (User user in Users)
{
if (user.Id == id)
{
user.Name = name;
user.Email = email;
break;
}
}
}
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
int id = int.Parse(txtId.Text);
User userToRemove = null;
foreach (User user in Users)
{
if (user.Id == id)
{
userToRemove = user;
break;
}
}
if (userToRemove != null)
{
Users.Remove(userToRemove);
}
}
```
5. 运行应用程序并测试增删改查功能。