I have this collection in my MainViewModel
private ObservableCollection<BoneNodeViewModel> _bones= new ObservableCollection<BoneNodeViewModel>();
public ObservableCollection<BoneNodeViewModel> Bones
{
get => _bones;
set => SetProperty(ref _bones, value);
}
Where Bones is represented in Hierarchical tree where each BoneNodeViewModel has a collection of children and each child has children and so on
public class BoneNodeViewModel : ObservableObject
{
private MyBone _bone;
public MyBone Bone
{
get { return _bone; }
set
{
if (SetProperty(ref _bone, value))
{
if (_bone != null)
{
// Register PropertyChanged event handler
_bone.PropertyChanged += MyBone_PropertyChanged;
}
}
}
}
private ObservableCollection<BoneNodeViewModel> _children;
public ObservableCollection<BoneNodeViewModel> Children
{
get { return _children; }
set
{
if (SetProperty(ref _children, value))
{
OnPropertyChanged(nameof(BoneNames));
}
}
}
private Transform3D _parentTransform = Transform3D.Identity;
public Transform3D ParentTransform
{
get { return _parentTransform; }
set
{
if (SetProperty(ref _parentTransform, value))
{
if (_parentTransform != null)
{
}
}
}
}
private Transform3D _boneTransform;
public Transform3D BoneTransform
{
get { return _boneTransform; }
set
{
if (SetProperty(ref _boneTransform, value))
{
if (_boneTransform != null)
{
}
}
}
}
private MeshGeometry3D _bonegeometry;
public MeshGeometry3D BoneGeometry
{
get { return _bonegeometry; }
set
{
if (SetProperty(ref _bonegeometry, value))
{
}
}
}
//
}
I am trying to Bind Bones Collection to GroupModel3D in HelixToolkit.Wpf.SharpDX.core project
to create a MeshGeometryModel3D for each BoneNodeViewModel recursively
in my model i defined the Transform3D and the Geometry required
my attemp was to create a item template with HierarchicalDataTemplate
the template worked correctly but only for the level 1 children
i.e., only for the children collections of the Bones collection direct items
<hx:GroupModel3D x:Name="Bones">
<hx:ItemsModel3D x:Name="BonesitemsModel" ItemsSource="{Binding Bones}">
<hx:ItemsModel3D.ItemTemplate>
<DataTemplate>
<hx:ItemsModel3D ItemsSource="{Binding Children}">
<hx:ItemsModel3D.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<hx:MeshGeometryModel3D CullMode="None" Geometry="{Binding BoneGeometry}">
<hx:MeshGeometryModel3D.Material>
<StaticResource ResourceKey="SilverPhongMaterial" />
</hx:MeshGeometryModel3D.Material>
</hx:MeshGeometryModel3D>
</HierarchicalDataTemplate>
</hx:ItemsModel3D.ItemTemplate>
</hx:ItemsModel3D>
</DataTemplate>
</hx:ItemsModel3D.ItemTemplate>
</hx:ItemsModel3D>
</hx:GroupModel3D>
how to make the template to work for all BoneNodeViewModel in my collection recursively ?