Hỏi đáp

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

Hỏi về MVVM

19:25 25-08-2021 372 lượt xem 4 bình luận

Chào anh Long, anh cho em hỏi: Trong MVVM, khi DeleteCommand, Delete trên giao điện rồi, làm sao để Delete dưới database anh? 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
Vo Tan Duc đã bình luận 17:59 26-08-2021

MainWindow.xaml

<Window x:Class="Test_MVVM.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:Test_MVVM"
		xmlns:Duc="clr-namespace:ViewModel;assembly=ViewModel"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
	<Window.DataContext>
		<Duc:DIENVIENVIEWMODEL></Duc:DIENVIENVIEWMODEL>
	</Window.DataContext>
    <StackPanel>
		<ListView x:Name="lv1" ItemsSource="{Binding Listdienvien}">
			<ListView.View>
				<GridView>
					<GridViewColumn Header="Mã diễn viên">
						<GridViewColumn.CellTemplate>
							<DataTemplate>
								<TextBlock Text="{Binding ID}"></TextBlock>
							</DataTemplate>
						</GridViewColumn.CellTemplate>
					</GridViewColumn>
					<GridViewColumn Header="Tên diễn viên">
						<GridViewColumn.CellTemplate>
							<DataTemplate>
								<TextBlock Text="{Binding TEN}"></TextBlock>
							</DataTemplate>
						</GridViewColumn.CellTemplate>
					</GridViewColumn>
				</GridView>
			</ListView.View>
		</ListView>
		<TextBlock></TextBlock>
		<StackPanel>
			<TextBlock Text="Mã diễn viên"></TextBlock>
			<TextBox Text="{Binding SelectedValue.ID, ElementName=lv1,Mode=OneWay}"></TextBox>
			<TextBlock Text="Tên diễn viên"></TextBlock>
			<TextBox Text="{Binding SelectedValue.TEN, ElementName=lv1,Mode=OneWay}"></TextBox>
		</StackPanel>
		<StackPanel Orientation="Horizontal">
			<Button Content="Xóa" Command="{Binding DeleteCommand}" CommandParameter="{Binding SelectedValue,ElementName=lv1}"></Button>
		</StackPanel>
    </StackPanel>
</Window>

DataProvider.cs (trong Project Model)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    public class DataProvider
    {
        private static DataProvider instance;
        public static DataProvider Instance
        {
            get { if (instance == null) instance = new DataProvider(); return DataProvider.instance; }
            private set { DataProvider.instance = value; }
        }
        public DataClasses1DataContext Data { get; set; }
        private DataProvider()
        {
            Data = new DataClasses1DataContext();
        }
    }
}

DIENVIENVIEWMODEL.cs (trong project ViewModel)

using Model;
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.Input;

namespace ViewModel
{
    public class DIENVIENVIEWMODEL
    {
        ObservableCollection<DIENVVIEN> listdienvien;
        public ObservableCollection<DIENVVIEN> Listdienvien { get => listdienvien; set => listdienvien = value; }
        public DIENVIENVIEWMODEL()
        {
            Listdienvien = new ObservableCollection<DIENVVIEN>(DataProvider.Instance.Data.DIENVVIENs);
            DeleteCommand = new RelayCommand<object>((p) => p != null, (p) =>
              {
                  Listdienvien.Remove(p as DIENVVIEN);
                  //DataProvider.Instance.Data.DIENVVIENs.DeleteOnSubmit(Listdienvien);
                  //DataProvider.Instance.Data.SubmitChanges();
                  //MessageBox.Show("Xóa thành công");
              });
        }
        public ICommand DeleteCommand { get; set; }
    }
}

 

Kteam SuperAdmin đã bình luận 07:10 26-08-2021

mấy này nên có code nha! chứ hỏi thế này cũng ko biết đâu mà hỗ trợ

Cu Xin Author đã bình luận 20:38 25-08-2021

Thì delete thôi. Bạn phải đưa code của bạn lên mới biết bạn sai chỗ nào chứ.

Minh Sự Moderator đã bình luận 19:59 25-08-2021

Thì delete thôi, ban đang vướng cụ thể chỗ nào?

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