问题标签 [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.
c# - Silverlight:VisualStateManager.GetVisualStateGroups 没有,我怎样才能得到它们?
我已经尝试VisualStateManager.GetVisualStateGroups
在我的自定义行为的OnAttached
覆盖中使用,以及AssociatedObject.Loaded
在该行为中添加到事件的事件处理程序中使用。两次我都得到一个空列表。
是否有另一种方法来获取为控件定义的视觉状态组,或者我应该附加到另一个事件处理程序?
被问到,是的,控件有VisualStateGroups
和VisualStates
。
wpf - 绑定 - 使用行为时的 UpdateSource
我编写了一个绑定到我的 ViewModel 以获取特定值的行为。我想在行为的 Associated 对象失去焦点时显式更新源,但是我无法访问绑定以对行为执行 UpdateSource,因为该行为不是框架元素(当然)。我曾考虑在附加行为时在代码中创建一个新绑定并保留对它的引用,但想知道是否有更好的方法。有任何想法吗?
提前致谢。
wpf - 附加的命令行为和 LostFocus
我正在使用此处描述的方法将 ViewModel ICommand 附加到组合框的 LostFocus 事件,方法是设置CommandBehavior.RoutedEventName="LostFocus"
. 我预计事件会在触发绑定的同时UpdateSourceTrigger=LostFocus
触发,但事实并非如此。
每当键盘选项卡离开时,或者在用户通过单击从下拉列表中实际选择一个项目后, selecteditem BindingUpdateSourceTrigger=LostFocus
就会触发(不知道为什么这会导致失去焦点,但至少它会在做出选择后触发)。
只要用户单击组合框,附加的行为事件就会触发。立即地。如果使用键盘,它会正常运行,当您离开它时会触发。但是,当使用鼠标时,当控件获得焦点时触发事件,甚至在用户做出选择之前。有没有办法让这个行为像 lostfocus 对选定项目的行为一样?
编辑:我很好奇是否存在另一个答案,但我通过设置附加绑定找到了解决此问题的方法。SelectedItem 默认更新,处理正常的属性更改通知,并在 lostfocus 上更新 selectedvalue,仅处理我试图运行的命令。绑定看起来像这样:
wpf - 如何查找鼠标是否已被捕获
我创建了一个用户控件,其中包含画布和画布上的按钮。为了能够在画布上移动按钮,我附加了如下所示的 DragBehavior:
出于商业原因,如果我按住并拖动画布,我也需要移动画布。我用一个类似的 Behavior 类来完成它,它改变了画布边距,让它看起来好像它随着鼠标指针拖动而移动。此行为还捕获鼠标。
现在的问题是 - 如果我单击并拖动按钮,画布也会获得鼠标事件并开始被拖动。如何确保在拖动按钮时画布行为不会收到鼠标事件。
我尝试将 e.Handled = true 放在 Behaviors 中,但这没有用。
如果我发现鼠标已经被其他对象捕获,我可以在行为中设置条件以不再捕获它。
silverlight - SL4:需要在 ItemsControl 中的 Item 上注册移动(或重绘)事件
在 FrameworkElement 类中找不到移动事件或重绘事件。谷歌也没有帮助。所以...
我有一个由 VM 中的可观察集合填充的自定义 ItemsControl。ItemsControl 本身利用
行为,以便用户可以拖动整个程序集。
当用户移动装配体时,我希望每个项目都通知我,因为装配体移动导致项目重新定位。到目前为止,我已经尝试注册
但是当我拖动程序集时它似乎没有触发。
还
仅当我将鼠标放入不够好的项目时才有效。因为我正在移动 ItemsControl,然后必须将鼠标移入该项目才能触发事件。
有任何想法吗?我可以通过 OneOfMyDecendantsWasRedrawn 事件或类似事件的形式向可视化树中的某个祖先寻求帮助吗?我再次尝试在项目移动时收到通知,而不是在组件移动时收到通知。
silverlight - SL4/MVVM:在 VM 中使用 void Foo() 处理 MouseDragElementBehavior.Dragging 事件
我正在尝试处理我拥有的控件上的 MouseDragElementBehavior.Dragging 事件。请参阅此处了解我为什么要这样做的背景。
我在连接这个事件时遇到了麻烦。从 XAML 中,您可以看到我已向用户控件添加了一个行为。然后我尝试通过 CallMethodAction EventTrigger 将处理程序添加到行为上的 Dragging 事件。
我尝试了以下方法签名,但没有成功:
任何人都有使用触发器来处理附加行为中的事件的经验?
wpf - 公共与私有 AttachedProperties
拥有AttachedProperties
as private
vs有什么意义public
?通常它被定义为(示例):
但我也看到了一些属性的例子private static readonly...
CommandProperty
如果我将上述内容更改为现在,会有什么后果private
?如果我这样做,它似乎在我的 XAML 智能感知中仍然可用。我在这里想念什么?
jquery - drupal 7将行为附加到ajax内容
所以...我通过 ajax 将节点表单加载到另一个页面中。我尝试附加这样的行为:
问题是什么都没有发生。表单没有附加任何行为(自动完成、可折叠字段集、可拖动文本区域等)
c# - .NET 框架中是否有任何附加属性或附加行为?
我基本上很好奇任何 Microsoft 代码(.NET Framework)是否有任何显示附加属性和附加行为的文件。我知道互联网上有很多例子,但我更想知道微软是如何编码的。
data-binding - 在多个视图中绑定到所选项目的 ObservableCollection(MVVM,SL5)
我正在使用带有 Silverlight 5 的 MVVM。我想要实现的是ListBox
在一个视图中选择项目(例如 ListView.xaml)并ListBox
在另一个视图中显示所选项目(例如 SelectionView.xaml)。
我选择的项目位于通过附加行为创建的ObservableCollection<MyItem>
(称为)中,如本答案中所述SelectedItems
问题似乎是我使用了两个不同的 XAML 文件。如果我在选择发生的同一个 XAML 文件中绑定ListBox
到,则项目会在同一个视图中显示在另一个中,而不会出现问题。但在不同的文件中,保持为空。SelectedItems
ListBox
ListBox
两个视图都使用与ViewModel
DataContext 相同的内容。
对于正确方向的一些指示,我会非常高兴。我是 SL 的新手,所以也许我遗漏了一些明显的东西。
这是有效的代码:
列表视图.xaml
这段代码只给出了一个空列表框:
选择视图.xaml
PS:语法高亮设置为 language-all: lang-xml 但似乎不起作用?