Wpf 将字符串绑定到 name 属性

发布于 2024-12-08 10:48:03 字数 280 浏览 0 评论 0原文

我在动态加载的 XAML 文件中有一个按钮。

<Button Name="{Binding Template_Text1}"
        Width="800" Height="76"
        Content="{Binding Template_Text1}"
        Style="{DynamicResource RoundedButton}"/>

如果我为按钮提供静态名称,一切都会正常。 那么,如何将字符串变量绑定到 NAME 属性呢?

I have a button in a dynamically loaded XAML file.

<Button Name="{Binding Template_Text1}"
        Width="800" Height="76"
        Content="{Binding Template_Text1}"
        Style="{DynamicResource RoundedButton}"/>

If I give a static NAME to the button everything goes ok.
so, how can I bind a string variable to the NAME property?

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

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

发布评论

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

评论(2

风筝在阴天搁浅。 2024-12-15 10:48:03

来自 MSDN

名称是极少数不能更改的依赖属性之一
动画(元数据中的 IsAnimationProhibited 为 true),因为
名称本身对于动画的定位至关重要。数据绑定名称
在技​​术上是可行的,但这是一种极其罕见的情况,因为
数据绑定名称不能满足其主要预期目的
属性:为代码隐藏提供标识符连接点。

换句话说:你正在做的事情非常棘手,所以请再考虑一下你是否真的需要它。

From the MSDN:

Name is one of the very few dependency properties that cannot be
animated ( IsAnimationProhibited is true in metadata), because the
name itself is vital for targeting an animation. Data binding a Name
is technically possible, but is an extremely uncommon scenario because
a data-bound Name cannot serve the main intended purpose of the
property: to provide an identifier connection point for code-behind.

In other words: what you are doing is very tricky so think again whether or not you really need it.

天赋异禀 2024-12-15 10:48:03

牢记@Erno上面的宝贵意见,我认为您可以通过附加行为的绑定来更改属性的名称。

   <Button local:NameAnimationBehavior.Name="{Binding Template_Text1}" ... />

NameAnimationBehavior 内,在 NameProperty 的依赖属性更改处理程序中,使用 e.NewValueName 属性>。

Keeping @Erno's valuable input in mind above, I think you can change Name of a property via binding through an attached behavior.

   <Button local:NameAnimationBehavior.Name="{Binding Template_Text1}" ... />

And inside the NameAnimationBehavior, in NameProperty's dependency property changed handler, change the sender's Name property with e.NewValue.

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