私の目標は、3d モデルを回転させた後、xAngle
に保存することです。ViewModel
何らかの理由でproperties
、ViewModel
ここで何が欠けていますか?
これが私のコードです:
xamlに次のコードがあります。
<Window.DataContext>
<Local:VM />
</Window.DataContext>
<helix:HelixViewport3D x:Name="viewPort3d" ZoomExtentsWhenLoaded="true" CameraRotationMode="Trackball"
ShowCoordinateSystem="True" RotateGesture="{Binding RotateGesture, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
>
<helix:SpotHeadLight/>
<ModelVisual3D Content="{Binding The3dModel.Content, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ModelVisual3D.Transform>
<Transform3DGroup>
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="1,0,0" Angle="{Binding xAngle, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Transform3DGroup>
</ModelVisual3D.Transform>
</ModelVisual3D>
</helix:HelixViewport3D>
ViewModelの次のコード:
public class VM : INotifyPropertyChanged
{
private int m_xAngle;
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }
public int xAngle
{
get => m_xAngle;
set
{
m_xAngle = value;
OnPropertyChanged();
}
}
}