Код не работает с техникой команд WPF? - PullRequest
0 голосов
/ 30 апреля 2019

Добрый вечер,

следующий код также работает непосредственно в классе MainWindow.

К сожалению, я хочу использовать шаблон MVVM Pattern с WPF Commands, поэтому я определил отдельный CommandClass для этого. Он перебирает TextBox и очищает его, если TextBox не пустой.

Определяет количество текстовых полей, но не их содержимое.

 public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();
        }
        //Here it would work withouth MainWindow mw.

    }

    public class ClearCommand : ICommand
    {
        public bool CanExecute(object param)
        {
            return true;
        }

        public event EventHandler CanExecuteChanged;
        public void Execute(object param)
        {
            MainWindow mw = new MainWindow();
            IEnumerable<TextBox> collection = mw.Grid.Children.OfType<TextBox>();
            foreach (TextBox item in collection)
            {
                MessageBox.Show(item.Text); //always empty
                if (item.Text != "")
                {
                    item.ClearValue(TextBox.TextProperty);
                }
            }
        }
    }

Может быть, кто-то знает, в чем проблема. Спасибо!

1 Ответ

0 голосов
/ 30 апреля 2019

Ааа, я понял.Экземпляр из MainWindow должен быть:

Application.Current.MainWindow
...