JoeSmith3100
@JoeSmith3100
Начинающий программист C#

Как изменять через биндинги контент в textboxs'ах?

Есть ли в данном случае какой то способ по нажатию кнопки изменить контент в textbox'e?

Вот то что пытался сделать сам: допустим есть несколько файлов:
+ProjectFolder
-- MainWindow.xaml
-- MainWindow.xaml.cs (только конструктор mainWindow внутри которого метод инициализации компонентов)
-- TCommand.cs
-- MainWindowVM.cs

+++ MainWindow.xaml +++

<Window x:Class="Player.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:Player"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="MainWindow" ResizeMode="NoResize" Height="840" Width="1420">
    
    <Window.DataContext>
        <local:MainWindowVM/>
    </Window.DataContext>

    <Grid>
         <TextBox Text="{Binding PValue_1}"  HorizontalAlignment="Left" Height="35" TextWrapping="Wrap" VerticalAlignment="Top" Width="261" Margin="1075,229,0,0"/>
        <Button Command="{Binding OnClick_1}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="35" Margin="1349,229,0,0" Height="35"/>
    </Grid>


+++ MainWindow.xaml.cs +++

    class MainWindowVM 
    {

        public event PropertyChangedEventHandler PropertyChanged;

        public void CheckChanges([CallerMemberName]string property="")
        {
            PropertyChanged?.Invoke(PropertyChanged, new PropertyChangedEventArgs(property));
        }

        public string value_1 = "DROP";

        public string PValue_1
        {
            get
            {
                return value_1;
            }

            set
            {
                value_1 = value;
                CheckChanges();
            }
        }

        public TCommand OnClick_1
        {
            get 
            {
                return new TCommand
                (
                    (obj) =>
                    {
                        PValue_1 = "kurwa";
                    }
                );
            }
        }
    }


+++ TCommand.cs +++

class TCommand
    {
        private Action<object> execute;
        private Func<object, bool> canExecute;

        public event EventHandler CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }

        public TCommand(Action<object> _execute, Func<object, bool> _canExecute = null)
        {
            execute = _execute;
            canExecute = _canExecute;
        }

        public bool CanExecute(object parameter)
        {
            return canExecute == null || canExecute(parameter);
        }

        public void Execute(object parameter)
        {
            execute(parameter);
        }
    }


Вопрос: почему это всё не работает?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы