Контент ModelVisual3D не обновляется
Я действительно новичок в WPF HelixToolkit. Для своего приложения я использую Helixtoolkit, где я загружаю своего робота как экземпляр из другого класса в viewPort3d. Объект-робот загружается как группа Model3D.
public partial class View3DControl : UserControl, INotifyPropertyChanged
{
public View3DControl()
{
InitializeComponent();
if (!DesignerProperties.GetIsInDesignMode(this))
RobotModel = MainWindow.Instance.RobotModel;
}
public Robot3DModel RobotModel
{
get
{ return _robot3DModel; }
set
{
_robot3DModel = value;
if (_robot3DModel != null)
modelVisual3d.Content = _robot3DModel.Model3D;
}
}
А это мой Viewport Xaml
<helix:HelixViewport3D x:Name="viewPort3d" ZoomExtentsWhenLoaded="false" ShowCoordinateSystem="True" Background="{helix:LinearGradientBrush Gray, White}" ShowCameraInfo="{Binding ShowCameraInfo}">
<helix:HelixViewport3D.DefaultCamera>
<PerspectiveCamera Position="1.386 0 0.351" LookDirection="-1.386 0 0" UpDirection="0.78 0 0.625"/>
</helix:HelixViewport3D.DefaultCamera>
<helix:DefaultLights/>
<helix:GridLinesVisual3D MinorDistance="0.5" Thickness="0.005" />
<ModelVisual3D x:Name="modelVisual3d" />
</helix:HelixViewport3D>
У меня есть другой класс, в котором я использовал несколько ползунков WPF для вращения суставов роботов. Теперь моя цель - выбрать части модели робота щелчком мыши и повернуть выбранную часть перетаскиванием мышью. Я использую VisualTreeHelper.HitTest для выбора частей модели путем сопоставления значений Bound между объектом-роботом и результатом проверки. Модель загрузилась правильно, и я могу выбирать части робота щелчком мыши, когда робот находится в своем положении по умолчанию (прямо вперед). Но когда я вращаю робота с помощью класса слайдера, результат HitTest не дает повернутых значений привязки. Он всегда дает результат позиции по умолчанию. Похоже, что содержимое modelVisual3D не изменилось, хотя повернутая модель отображается в представлении. Любая помощь в том, как я могу заставить его работать? Или кто-нибудь может предложить другие подходы?