代码不能与WPF命令技术一起使用吗?

时间:2019-04-29 21:45:49

标签: binding command

晚上好

以下代码也可以直接在MainWindow类中使用。

不幸的是,我想在WPF命令中使用MVVM模式技术, 所以我为此定义了一个单独的CommandClass。 它遍历TextBoxes,如果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 :(得分:0)

我明白了。 来自MainWindow的实例应为:

Application.Current.MainWindow