【发布时间】:2020-02-18 19:25:23
【问题描述】:
我的目标是在我拖动控件时在TextBlock 中显示控件的 X 位置。
xmlns:mb="http://schemas.microsoft.com/xaml/behaviors"
<cc:CardControl Name="SevenOfSpades" Canvas.Left="350" Canvas.Top="124" Width="60" Height="80" Face="S7">
<mb:Interaction.Behaviors>
<mb:MouseDragElementBehavior ConstrainToParentBounds="True"/>
</mb:Interaction.Behaviors>
</cc:CardControl>
<TextBlock Text="{Binding ElementName=SevenOfSpades, Path=(mb:Interaction.Behaviors)[0].X}"/>
我正在为绑定路径的语法而苦苦挣扎。在运行时我得到一个异常:
InvalidOperationException:属性路径无效。 “交互”没有名为“行为”的公共属性。
该属性存在是因为在删除 TextBlock 时拖动起作用。我尝试过各种括号组合,我什至尝试过 x:static。有什么帮助吗?
编辑
重读WPF Attached Property Data Binding,并没有解决我的问题。 Path= 在 Xaml 中并包含括号。该错误不是绑定错误,而是 InitializeComponent 内部发生的运行时错误。
MouseDragElementBehavior 是安装到我的项目中的Microsoft.Xaml.Behaviors.Wpf Nuget 包的一部分。
【问题讨论】:
-
这能回答你的问题吗? WPF Attached Property Data Binding
-
如果这不能回答您的问题,请发布
MouseDragElementBehavior的代码。 -
@MarkFeldman 我在提出问题之前确实阅读了该帖子,但它并没有解决我的问题。我正在使用从 Nuget 安装到我的项目中的 Microsoft.Xaml.Behaviors.Wpf 包,所以它不是我的代码。即使我通过指定
Path=(mb:Interaction.Behaviors)忽略路径中的MouseDragElementBehavior,也会出现相同的运行时错误。
标签: wpf xaml data-binding attachedbehaviors