问题标签 [attachedbehaviors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7782 浏览

c# - 通过匿名委托取消订阅事件

我多次使用 Resharper 5.1 代码分析我从 resharper 得到评论

“通过匿名委托取消订阅事件”

我该如何纠正或优化这件事

0 投票
1 回答
505 浏览

wpf - WPF/WP7 附加行为 - 在触发关联对象的事件之前执行

我正在尝试了解 WPF/WP7 Silverlight 中的附加行为,我遇到了一个概念障碍,我想知道是否有人可以权衡。

我正在尝试创建的功能示例如下:用户单击其 Click 处理程序触发导航的按钮(即 NavigationContext.Navigate()),并且在实际发生导航之前,按钮上会出现动画将其不透明度从 1 降低到 0(“淡出”效果)。

所以,按顺序:

  1. 用户点击按钮
  2. 按钮执行动画
  3. 导航发生

很简单,对吧?我创建了一个看起来像这样的附加行为:

如果按钮所在页面的 .xaml.cs 不包含触发导航的 Click 处理程序,这显然可以正常工作,但是当我连接它时,动画在导航发生之前没有完成。我当然理解为什么会这样,但我想知道是否有一种方法可以实现这一点,同时也展现出非糟糕设计的美妙特性。

我发现这个看似相关的 SO 线程,但接受的答案真的是唯一的方法吗?

谢谢你的帮助。

编辑:如果你碰巧有一个 WP7 并且一心想弄清楚这一点,Reddit 阅读器应用程序“Baconit”会表现出类似于我在单击故事标题时感兴趣的行为。

0 投票
1 回答
334 浏览

wpf - IsDisabled 附加属性

我们如何将属性附加到已知属性,例如“IsDisabled”?例如,当我的控件被禁用时,我希望另一个属性接管并更改一些内容。

0 投票
1 回答
1479 浏览

wpf - 带有附加命令行为的树视图事件

我想用 ACB 处理树视图上的事件(http://marlongrech.wordpress.com/2008/12/04/attachedcommandbehavior-aka-acb/)。

我被 XAML 文件中的绑定卡住了。该事件被触发,但我在 ACB 库中不断收到空引用异常,因为策略为空:

在 XAML 文件中,我添加了以下内容(摘录):

在 Viewmodel 中我添加了:

谁能帮我装订?

问候,

米歇尔

0 投票
1 回答
1195 浏览

c# - MVVM 处理 MouseDragElementBehavior 的拖动事件

这个问题用文字告诉我该怎么做,但我不知道如何编写代码。:)

我想做这个:

但正如另一个问题所概述的那样,EventTrigger 不起作用......我认为这是因为它想在DragFinished.SomeUIElement而不是MouseDragElementBehavior. 那是对的吗?

所以我想我想做的是:

  • 编写一个继承自的行为MouseDragElementBehavior
  • 覆盖OnAttached方法
  • 订阅该DragFinished事件...但我无法弄清楚执行此操作的代码。

请帮忙!:)

0 投票
1 回答
196 浏览

c# - 触发器中的附加行为导致构建错误

我有一个带有控件模板的样式,但无法编译它。我正在尝试触发附加行为。如果我把它放在控制模板触发器中它工作正常......但是如果我把它放在文本框触发器中,我会收到一个构建错误,上面写着:

在“TextBoxBehavior”类型上找不到静态成员“SelectAllProperty”

这是我的代码:

关于为什么一个给出构建错误而另一个没有的任何想法?

0 投票
3 回答
9947 浏览

c# - WPF DataGrid 上的拖放行行为

我正在尝试做一个附加的行为来重新排序行Drag & Drop

我找到了一些解决方案(在 Stackoverflow 上并通过谷歌搜索)并使用它们我试图做出这种行为......我以 Hordcodenet 网站为例(我现在没有链接)

代码

助手类

/// /// 常见的 UI 相关的辅助方法。/// 公共静态类 UIHelpers {

}

问题是OnMouseLeftButtonDown当我将事件按在一行上以拖动它时不会调用它......但OnMouseLeftButtonUp在那之后调用它......

有没有办法做到这一点......

我似乎找不到方法

0 投票
1 回答
2309 浏览

c# - WPF DataGrid 中的通用拖放行为

我做了一个行为拖放 Beahvior,它采用一个集合(实现 IList,如 ObservableCollection,LIst)

它的工作正常...

但如果我使用CollectionViewSource.View(在 Xaml 绑定中),行为 falis....

我怎样才能使这种行为通用(就像独立于 DataGrid 的 DataSource 类型一样)

是否有可能,因为我正在使用 IList 接口的方法,例如

0 投票
3 回答
1241 浏览

c# - 在 Tab 按键上将新项目添加到 ListBox

我有一个 WPF 列表框,带有一个用于列表框 ItemTemplate 的自定义 DataTemplate(每个项目都有一组控件;即文本框和日期选择器)。我有一个附加到最后一个 DatePicker 的行为,它允许用户在事件处理程序中为 PreviewKeyDown 事件执行 ICommand。

这个想法是,用户将通过 ListBoxItem 中的控件进行 TAB,当他们到达最后一个控件时,再次按 TAB,一个新的 ListBoxItem 将添加到 ListBox。然后焦点将移至下一个 ListBoxItem 中的第一个控件。当 ListBox 中已有 2 个项目并且您在第一个项目中切换时,我的解决方案可以正常工作。如果 ListBox 中只有一项,并且您到达最后一个控件,则会添加新的 ListBoxItem(如预期的那样),但焦点会从 ListBox 移到下一个父控件。

这就像调用 Behavior 代码并调用 ICommand 一样,但 TAB 事件会继续进行,而无需等待添加新的 ListBoxItem。

有什么建议么?

我的行为(ZBehaviorBase 只是一个允许“更好”清理的类):

XAML:

在“线模板”内:

在命令的“Execute”方法中唯一要做的就是将一个对象添加到一个集合中,该集合是 ListBox 的 ItemsSource

0 投票
2 回答
4092 浏览

wpf - 如何在 WPF 中为按钮中的图像设置动画以每 30 秒抖动一次?

在处理任何与样式和动画有关的事情时,我并不擅长。

当按钮 Visibility 设置为 Visibility.Visible 时,我希望能够获得一些帮助,使图像是 Button 每 30 秒抖动一次的唯一内容。

这是为了引起用户的注意,鼓励他们点击按钮。

我更愿意将此作为 Image 上的附加行为,或者如果可能的话,甚至是 UIControl,以使其易于重用而不是弄乱样式,因为我已经在使用控件供应商提供的样式,并且我不想编辑它。

这是我使用的来自标记答案的解决方案

这是可以应用于任何System.Windows.Controls.Image的附加行为

以下是如何在 Xaml 中使用它。

有关附加行为的明确定义,您可以查看System.Windows.Interactivity.Behavior类注释。行为可以选择具有附加属性,也可以使它们非常有用。

有关附加属性的明确定义,您可以阅读 MSDN 的附加属性概述。附加属性可以做任何事情,它们可以被认为是附加行为,因为它们可以触发一个动作发生,从而导致一个有效的行为,但是从技术上讲,它们仍然只是一个附加属性。

由于附加属性可以像行为一样,人们也开始将这些类型的附加属性称为附加行为,而实际上它并不是真正的附加行为,除非您从 Behavior 派生到附加属性Interaction.Behaviors集合.

与 WPF/Silverlight 中的大多数内容一样,任何附加行为或附加属性都不需要混合。