C#学习教程:了解是否在XAML中设置了DependencyProperty我想要做的是,如果XAML中未设置PlacementTarget,则(控件将)将其设置为控件所在的窗口。当我说“未设置”时,我的意思不仅仅是“为空”(这允许用户开发人员将PlacementTarget设置为空,并且控件不会自动将其设置为Window)。我有一个名为placementTargetIsSet的字段,我在Change事件处理程序中将其设置为true;staticvoidPlacementTargetChanged(DependencyObjectsender,DependencyPropertyChangedEventArgse){MyControlctrl=(senderasMyControl);ctrl.placementTargetIsSet=true;{SetValue(PlacementTargetProperty,值);但是我发现changed事件发生在OnApplyTemplate和Loaded事件之后。即,当OnApplyTemplate或Loaded发生时,placementTargetIsSet==false,无论是否已设置PlacementTarget(在XAML中)。那么我什么时候可以安全地假设PlacementTarget尚未设置?您不需要额外的placementTargetIsSet字段,因此不需要PropertyChangedCallback。为了判断PlacementTarget属性是否设置了值,只需调用ReadLocalValue方法,测试是否返回DependencyProperty.UnsetValue:有用,需要多了解C#学习教程,希望大家多多关注——boolplacementTargetIsSet=ReadLocalValue(PlacementTargetProperty)!=DependencyProperty.UnsetValue;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
