her*_*ter 6 silverlight wpf xaml behavior
在Silverlight(可能还有WPF)中,当我定义一个System.Windows.Interactivity.Behavior<T>
例如a ItemsControl
,就像
public class SomeAwesomaticBehavior : Behavior<ItemsControl>
{
}
Run Code Online (Sandbox Code Playgroud)
它将出现在Visual Studio的XAML编辑器中(也可能出现在Designer中),即使对于普通的非Items控件也会出现令人讨厌的运行时异常.这与仅为预期类型出现的附加属性相反.
有没有办法限制这种可见性?一些神奇的属性可能(虽然这将是一个多余的声明)?
如果今天没办法,我希望将来会有这样的事情吗?因为当弹出很多与当前对象无关的行为时,肯定会让同事和设计人员感到困惑.
更新:我已经提交了uservoice项目.
Silverlight:http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/suggestions/1224253-restrict-behavior-visibility? ref = title
WPF:http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/1224259-restrict-behavior-visibility? ref = title
@HeRz你是对的,没有办法按目标类型过滤行为。Blend(可能还有 vs 设计器)使用反射来查找您创建的从基本类型Behavior 继承的所有类型,并将它们显示在资源列表中。
Blend 将防止您将行为或触发器拖到不想要的项目上。因此这应该有助于防止它们的滥用。
我通常尝试将行为编写为可重用的代码片段,而不是局限于特定情况。它们只是具有特定用途的工具。
归档时间: |
|
查看次数: |
323 次 |
最近记录: |