0

为什么 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 转换?

4

1 回答 1

2

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

既然Window已经是 a DependencyObject,您应该将其SearchString属性设为依赖属性,这将允许您将其与SearchStringView Model 的属性绑定。

于 2012-11-12T01:03:08.777 回答