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は既に であるためDependencyObject、そのSearchStringプロパティを依存関係プロパティSearchStringにする必要があります。これにより、ビュー モデルのプロパティにバインドできます。

于 2012-11-12T01:03:08.777 に答える