WPF/Silverlight:如何在尚未拥有BehaviorCollection 的控件上创建BehaviorCollection?

发布于 2024-10-16 08:30:42 字数 58 浏览 1 评论 0原文

如何在尚未拥有BehaviorCollection 的控件上创建BehaviorCollection?

How do I create a BehaviorCollection on a control that doesn't already have one?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

雨轻弹 2024-10-23 08:30:42

此 API 不是那么明显,要在代码中使用以下内容:

var behaviorCollection = System.Windows.Interactivity.Interaction
                                          .GetBehaviors(controlToAddBehaviorTo);
behaviorCollection.Add(new MyBehavior());

其中显然 controlToAddBehaviorTo 是“还没有一个控件”。

对于 xaml 中的同一件事:

<TextBox x:Name="controlToAddBehaviorTo">
    <i:Interaction.Behaviors>
        <local:MyBehavior/>
    </i:Interaction.Behaviors>
</TextBox>

导入交互命名空间 xmlns:i="clr-namespace:System.Windows.Interactivity; assembly=System.Windows.Interactivity"

The API for this isn't so obvious, to do in code use the following:

var behaviorCollection = System.Windows.Interactivity.Interaction
                                          .GetBehaviors(controlToAddBehaviorTo);
behaviorCollection.Add(new MyBehavior());

where obviously controlToAddBehaviorTo is the "control that doesn't already have one".

For the same thing in xaml:

<TextBox x:Name="controlToAddBehaviorTo">
    <i:Interaction.Behaviors>
        <local:MyBehavior/>
    </i:Interaction.Behaviors>
</TextBox>

with an import for the interactivity namespace xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文