我正在尝试实现一个对象有效的行为,但受第二个对象的影响。
作为示例,它将根据另一个框架元素的距离更改框架元素的外观。
我已经足够了解附加的行为是危险的,我会像这样定义我的类:
public class ChangeWithDistance : Behavior<FrameworkElement>
在行为的某个地方我需要一个依赖属性,它指向另一个控件的名称(?)。
我应该创建依赖属性的类是什么,以便我可以将此行为指向另一个控件?
我会将propdp指定为表示其他控件名称的字符串吗?
或者是否有另一个我应该使用的类表示与控件关联的标记(您知道,x:名称业务..)
或者,propdp应该指向这样的框架元素吗?
public static readonly DependencyProperty OtherControl =
DependencyProperty.Register("OtherControl", typeof(FrameworkElement)
或者我是否会对绑定做些什么?
是否有一种最佳实践,如何在另一个控件上指向一个行为或任何具有依赖属性的东西?
有没有办法让它显示,以便使用混合的用户可以选择其他控件?
答案 0 :(得分:2)
我很幸运地宣布我的依赖属性:
public static readonly DependencyProperty OtherObjectProperty =
DependencyProperty.Register("OtherObject", typeof (FrameworkElement), typeof (MyBehavior), new UIPropertyMetadata());
然后在XAML中将它绑定到我感兴趣的其他对象:
<Rectangle ....>
<Interactivity:Interaction.Behaviors>
<Controls:MyBehavior OtherObject="{Binding ElementName=TheOtherElementNameIWantToReference}" />
</Interactivity:Interaction.Behaviors>
</Rectangle>
答案 1 :(得分:0)
这是一个很多问题。阅读附加属性:http://msdn.microsoft.com/en-us/library/ms749011.aspx
简短的回答是您需要使用RegisterAttached
方法,而不是Register
。