2015-07-30 4 views
0

Начиная с базового примера HelixToolkit, я могу отображать сетку. В моем .xaml файл:Как обновить содержимое HelixToolkit ModelVisual3D на нажатой кнопке?

<HelixToolkit:HelixViewport3D Name ="viewPort" ZoomExtentsWhenLoaded="True">   
<HelixToolkit:SunLight/> 
<!--The content of this visual is defined in MainViewModel.cs--> 
<ModelVisual3D Content="{Binding Model}"/> 

И в моем .cs файл:

Model3DGroup modelGroup = new Model3DGroup();    
// [... add stuff to modelGroup as children ] 
this.Model = modelGroup; 

Теперь я пытаюсь изменить свои объекты, оказываемые при нажатии кнопки. Я попытался реализовать его с помощью функции обратного вызова, обновив модель.

public void testUpdate(){ 
     Model3DGroup newModelGroup = new Model3DGroup();    
     // [... add stuff to newModelGroup as children ] 
     this.Model = newModelGroup; 
    } 

Это не работает: показанные объекты не добавлены в newModelGroup. Как я могу это сделать?

ответ

0

я, наконец, удалось решить проблему с помощью PropertyChangedEventHandler

public event PropertyChangedEventHandler PropertyChanged; 

private void OnPropertyChanged(string propertyName) { 
    if (PropertyChanged != null) 
     PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

Каждый раз, когда модель изменяется, то OnPropertyChangedMethod называется поэтому новые модификации corectly оказаны.

this.Model = myNewModelGroup; 
OnPropertyChanged("Model"); 
Смежные вопросы