如何刷新HelixToolkit ModelVisual3D内容按下按钮



从一个基本的HelixToolkit示例开始,我能够渲染一个网格。在我的。xaml文件:

 <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的对象。我该怎么做呢?

我终于设法使用PropertyChangedEventHandler解决了这个问题

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

每次模型被修改时,OnPropertyChangedMethod被调用,所以新的修改被正确呈现。

this.Model = myNewModelGroup;
OnPropertyChanged("Model");

相关内容

  • 没有找到相关文章

最新更新