Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Hỏi về Remove_WPF

11:53 27-07-2021 449 lượt xem 1 bình luận

Chào anh Long, em tạo 1 bảng DIENVIEN  trong CSDL, dữ liệu thì em Load lên ListView rồi, em tạo nút X, khi nhấn vào nút X nó sẽ xóa:

SQL:

CREATE DATABASE QLDIENVIEN
GO
USE QLDIENVIEN
GO
CREATE TABLE DIENVVIEN
(
    ID INT IDENTITY,
    TEN NVARCHAR(60)
)
GO
INSERT INTO dbo.DIENVVIEN
(
    TEN
)
VALUES
(N'Vương Vũ Tiệp' -- TEN - nvarchar(60)
    )
INSERT INTO dbo.DIENVVIEN
(
    TEN
)
VALUES
(N'Phương Sổ Chân' -- TEN - nvarchar(60)
    )
INSERT INTO dbo.DIENVVIEN
(
    TEN
)
VALUES
(N'Tống Đạt Dân' -- TEN - nvarchar(60)
    )
GO

MainWindow.xaml:

<Window x:Class="TextDienVien.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TextDienVien"
        Loaded="Window_Loaded"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <ListView x:Name="lv1">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="ID">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <Button Content="X" Click="Button_Click"></Button>
                                    <TextBlock Text="{Binding ID}"></TextBlock>
                                </StackPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="Tên">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding TEN}"></TextBlock>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>  
    </Grid>
</Window>

MainWindow.xaml.cs:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace TextDienVien
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        private ObservableCollection<DIENVVIEN> listdienvien = new ObservableCollection<DIENVVIEN>();
        public MainWindow()
        {
            InitializeComponent();
            var lst= (from d in data.DIENVVIENs select d).ToList();
            foreach (var item in lst)
            {
                Listdienvien.Add(item);
            }
        }
        DataClasses1DataContext data = new DataClasses1DataContext();

        public ObservableCollection<DIENVVIEN> Listdienvien { get => listdienvien; set => listdienvien = value; }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Listdienvien.Remove(((sender as Button).DataContext as DIENVVIEN));
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            lv1.ItemsSource = data.DIENVVIENs.Select(p => p);
        }
    }
}

Khi em chạy, nhấn vào nút X thì nó không xóa, em đặt debug thì Listdienvien Count=3. Xin anh và mọi người giúp đỡ em. Cảm ơn anh

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 17:03 27-07-2021

xoa theo index thay vì xóa item nha bạn

Câu hỏi mới nhất