0

从一个基本的 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 的对象。我怎样才能做到这一点?

4

1 回答 1

0

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

public event PropertyChangedEventHandler PropertyChanged;

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

每次修改模型时,都会调用 OnPropertyChangedMethod,以便正确呈现新的修改。

this.Model = myNewModelGroup;
OnPropertyChanged("Model");
于 2015-07-31T11:16:35.280 回答