private void Window_Loaded(object sender, RoutedEventArgs e) { InitializePropertyGrid(this.propertyGridClusteringHost, this.clusteringSettings, MainWindow_PropertyValueChanged); InitializePropertyGrid(this.propertyGridShapeHost, this.shapeSettings, MainWindow_PropertyValueChanged); InitializePropertyGrid(this.propertyGridHandHost, this.handSettings, MainWindow_PropertyValueChanged); this.presenter = new MainViewModel(this.clusteringSettings, this.shapeSettings, this.handSettings); this.DataContext = presenter; this.displayControl.DataContext = presenter; this.presenter.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(presenter_PropertyChanged); }