Activation of the Save c#/wpf button

Asked

Viewed 75 times

-1

How can I make sure that once there is a change in the text field, the save button is enabled? or by clicking edit (thus creating the button) the app enables editing and thus enabling the button

Follow the code below:

    public class GerenciarGenericoViewModel : ViewModelBase
    {
        public GerenciarGenericoViewModel()
        {
            InserirProdutoCommand = new RelayCommand(InserirProduto);
            ExcluirProdutoCommand = new RelayCommand(ExcluirProduto, CanExcluirProduto);

            InserirUnidadeCommand = new RelayCommand(InserirUnidade);
            ExcluirUnidadeCommand = new RelayCommand(ExcluirUnidade, CanExcluirUnidade);

            InserirEmpresaCommand = new RelayCommand(InserirEmpresa);
            ExcluirEmpresaCommand = new RelayCommand(ExcluirEmpresa, CanExcluirEmpresa);

            InserirOperadorCommand = new RelayCommand(InserirOperador);
            ExcluirOperadorCommand = new RelayCommand(ExcluirOperador, CanExcluirOperador);

            SalvarCommand = new RelayCommand(Salvar, CanSalvar);
            CancelarCommand = new RelayCommand(Cancelar);

            ListaProdutos = new ObservableCollection<Produto>(ProdutosAccess.GetProdutos());
            ListaUnidades = new ObservableCollection<UnidadeMedida>(ProdutosAccess.GetUnidadesMedida());
            ListaEmpresas = new ObservableCollection<Empresa>(ProdutosAccess.GetEmpresas());
            ListaOperadores = new ObservableCollection<Operador>(ProdutosAccess.GetOperadores());

        }

        public RelayCommand InserirProdutoCommand { get; }
        public RelayCommand ExcluirProdutoCommand { get; }

        public RelayCommand InserirUnidadeCommand { get; }
        public RelayCommand ExcluirUnidadeCommand { get; }

        public RelayCommand InserirEmpresaCommand { get; }
        public RelayCommand ExcluirEmpresaCommand { get; }

        public RelayCommand InserirOperadorCommand { get; }
        public RelayCommand ExcluirOperadorCommand { get; }

        int check = 0;

        public RelayCommand SalvarCommand { get; }
        public RelayCommand CancelarCommand { get; }

        public ObservableCollection<Produto> ListaProdutos { get; }
        public ObservableCollection<UnidadeMedida> ListaUnidades { get; }
        public ObservableCollection<Empresa> ListaEmpresas { get; }
        public ObservableCollection<Operador> ListaOperadores { get; }

        private Produto _produtoSelecionado;
        public Produto ProdutoSelecionado
        {
            get => _produtoSelecionado;
            set => Set(() => ProdutoSelecionado, ref _produtoSelecionado, value);
        }

        private UnidadeMedida _unidadeSelecionada;
        public UnidadeMedida UnidadeSelecionada
        {
            get => _unidadeSelecionada;
            set => Set(() => UnidadeSelecionada, ref _unidadeSelecionada, value);
        }

        private Empresa _empresaSelecionada;
        public Empresa EmpresaSelecionada
        {
            get => _empresaSelecionada;
            set => Set(() => EmpresaSelecionada, ref _empresaSelecionada, value);
        }

        private Operador _operadorSelecionado;
        public Operador OperadorSelecionado
        {
            get => _operadorSelecionado;
            set => Set(() => OperadorSelecionado, ref _operadorSelecionado, value);
        }

        public void InserirProduto()
        {
            ListaProdutos.Add(new Produto());
            check++;
        }

        public void ExcluirProduto()
        {
            ListaProdutos.Remove(ProdutoSelecionado);
            check++;
        }

        public bool CanExcluirProduto()
        {
            return ProdutoSelecionado != null;
        }

        public void InserirUnidade()
        {
            ListaUnidades.Add(new UnidadeMedida());
            check++;
        }

        public void ExcluirUnidade()
        {
            ListaUnidades.Remove(UnidadeSelecionada);
            check++;
        }

        public bool CanExcluirUnidade()
        {
            return UnidadeSelecionada != null;
        }

        public void InserirEmpresa()
        {
            ListaEmpresas.Add(new Empresa());
            check++;
        }

        public void ExcluirEmpresa()
        {
            ListaEmpresas.Remove(EmpresaSelecionada);
            check++;
        }

        public bool CanExcluirEmpresa()
        {
            return EmpresaSelecionada != null;
        }

        public void InserirOperador()
        {
            ListaOperadores.Add(new Operador());
            check++;
        }

        public void ExcluirOperador()
        {
            ListaOperadores.Remove(OperadorSelecionado);
            check++;
        }

        public bool CanExcluirOperador()
        {
            return OperadorSelecionado != null;
        }

        public void Salvar()
        {
            var listaProdutos = ListaProdutos.ToList();
            var listaUnidades = ListaUnidades.ToList();
            var listaEmpresas = ListaEmpresas.ToList();
            var listaOperadores = ListaOperadores.ToList();

            listaProdutos = listaProdutos.Where(x => !string.IsNullOrWhiteSpace(x.Descricao)).ToList();
            listaUnidades = listaUnidades.Where(x => !string.IsNullOrWhiteSpace(x.Descricao)).ToList();
            listaEmpresas = listaEmpresas.Where(x => !string.IsNullOrWhiteSpace(x.Descricao)).ToList();
            listaOperadores = listaOperadores.Where(x => !string.IsNullOrWhiteSpace(x.Nome)).ToList();

            ProdutosAccess.SetListProdutos(listaProdutos);
            ProdutosAccess.SetListUnidades(listaUnidades);
            ProdutosAccess.SetListEmpresas(listaEmpresas);
            ProdutosAccess.SetListOperadores(listaOperadores);

            MessageBox.Show(messageBoxText: "Dados salvos com sucesso!",
                           caption: "Gerenciar Dados", button: MessageBoxButton.OK,
                           icon: MessageBoxImage.Information);

            Sair();
        }

        public bool CanSalvar()
        {
            if (check == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }

        public void Cancelar()
        {
            Sair();
        }

        public void Sair()
        {
            Navigator.CloseWindowByDataContext(this);
        }
    }

1 answer

0


You can put in the Textchanged event of the textboxes the code below, if there is no text in the textbox, the button will be disabled.

private void textBox1_TextChanged(object sender, EventArgs e)
{
    btnSalvar.Enabled = !string.IsNullOrWhiteSpace(textBox1.Text);
}

In the Save button click event, change the Enabled from the button to false. Do the same thing in the Form Load event.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.