07-12-2019, 12:04 PM 
		
	
	
		All the Visual3D classes (SphereVisual3D, BoxVisual3D, ...) are standard WPF DependencyObjects with most properties implemented as DependencyProperties so they can be data binded - for example sphere's Radius, Position and Material can be data binded. But many values cannot be simply changed with binding - for example if you want to change individual positions or some other "raw" properties you will need to access them directly.
Also it is not possible to dynamically add multiple objects to the scene - you cannot use ItemList inside Viewport3D. You can theoretically derived from ModelVisual3D and add some support for dynamic Items or ItemsSource property, but you would need to code the logic in this class.
I am not an expert for MVVM but still I think that WPF 3D and Ab3d.PowerToys are not very well suited for MVVM. Especially when the applications's performance is important and 3D scene becomes more complex.
	
	
Also it is not possible to dynamically add multiple objects to the scene - you cannot use ItemList inside Viewport3D. You can theoretically derived from ModelVisual3D and add some support for dynamic Items or ItemsSource property, but you would need to code the logic in this class.
I am not an expert for MVVM but still I think that WPF 3D and Ab3d.PowerToys are not very well suited for MVVM. Especially when the applications's performance is important and 3D scene becomes more complex.
Andrej Benedik
	

