【发布时间】:2014-08-11 08:09:53
【问题描述】:
我目前正在 WPF/XAML 中试验数据绑定。我在 XAML 中编写了一个绑定到 PerspectiveCamera 的 TransformProperty 的相机控件,如下所示:
<PerspectiveCamera FieldOfView="60" UpDirection="0,1,0" Transform="{Binding
CameraControlVM.CamControl.Transform}"/>
CameraControlVM 只是我的 ViewModel 类。 CamControl 有一个常规的 .Net 属性 Transform,在这里用作绑定源。
public class CameraControl
{
public Transform3D Transform { get; set; }
...
}
所以一切正常,但实际上我想知道为什么?!当我的相机控件的变换发生变化时,绑定透视相机的变换也会发生变化。在这种情况下,我将一个目标 (PerspectiveCamera.Transform) 绑定到作为源的常规属性 (Transform),它是一个 DependencyProperty。我还没有在我的 CameraControl 上实现 INotifyPropertyChanged 接口,所以在数据绑定方面,我希望只有相机控制转换应该被告知实际相机转换的变化,而不是相反。我是否在这里遗漏了什么或混淆了数据绑定规则?
为了让问题更清楚:在我的设置中,一个常规属性似乎会在没有使用 INotifyPropertyChanged 的情况下通知 DependencyProperty,我认为这在数据绑定中是不可能的,是吗? 也许它与从WPF中的Animatable派生的Transform3D有关?
【问题讨论】:
标签: c# wpf data-binding