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

问题描述 投票:0回答:1

晚上好,

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

不幸的是我想将MVVM模式技术与WPF命令一起使用,所以我为此定义了一个单独的命令类。如果TextBox不为空,它将遍历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);
                }
            }
        }
    }

也许有人知道问题是什么。谢谢!

binding command
1个回答
0
投票

啊,我明白了。 MainWindow的实例应该是:

Application.Current.MainWindow
© www.soinside.com 2019 - 2024. All rights reserved.