RaisePropertyChange WPF C#

时间:2012-11-12 01:00:06

标签: c# wpf

为什么RaisePropertyChange无法正常工作

public partial class MainWindow : Window
{
        private string _searchString;
        public string SearchString
        {
            get { return _searchString; }
            set
            {
                _searchString = value;
                RaisePropertyChanged(() => SearchPersonEHistroy);
            }
        }
}

它提供错误“当前上下文中不存在”RaisePropertyChanged“

但是当我试图这样使用时:

public partial class MainWindow : Window
{
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new MainViewModel();
        }

        public class MainViewModel : NotificationObject
        {
            private string _searchString;
            public string SearchString
            {
                get { return _searchString; }
                set
                {
                    _searchString = value;
                    RaisePropertyChanged(() => SearchPersonEHistroy);
                }
            }
        }

}

它们之间有什么区别?或者我们在公共部分类MainWindow:Window 中有什么转换为RaisePropertyChange?

1 个答案:

答案 0 :(得分:2)

RaisePropertyChanged()NotificationObject类定义,而不是Window

由于Window已经是DependencyObject,您应该将其SearchString属性设为dependency property,这样您就可以将其绑定到SearchString属性查看模型。