gpt4 book ai didi

wpf - 在 WPF 中覆盖模板化按钮的命令

转载 作者:行者123 更新时间:2023-12-04 21:42:15 32 4
gpt4 key购买 nike

我有一个 ControlTemplate我用来改变几个 Button 的外观和行为s。我只想要 Button 的一部分可点击并执行绑定(bind)Command ,所以我添加了 ButtonControlTemplate 内并将其绑定(bind)到模板的Command属性(property)。

我遇到的问题是,因为我正在定义 Command绑定(bind)到模板 Button ,无论我单击模板的哪个部分,它都会执行。

在下面的示例中,您可以单击 Border并执行Command .如何更改它以便 Command仅在单击 Button 时执行在模板内?

<ControlTemplate x:Key="ButtonControlTemplate" TargetType="{x:Type Button}">
<Border BorderThickness="10" BorderBrush="Black">
<Button
Command="{TemplateBinding Command}"
CommandParameter="{TemplateBinding CommandParameter}" >
<ContentPresenter Content="{TemplateBinding Content}" />
</Button>
</Border>
</ControlTemplate>

...

<Button
Command="{Binding Path=SomeViewmodelCommand}"
CommandParameter="{Binding Path=SomeViewmodelCommandParameter}"
Content="Click"
Template="{StaticResource ButtonControlTemplate}" />

我认为我不能模板化不同的元素(如 Border ),因为我仍然需要传入 Command不知何故,附加属性仍然会给我同样的行为。

最佳答案

这是一个肮脏的黑客,但你可以绑定(bind)内部按钮的Command模板化父级的 Tag 的属性而是属性(property)。这样您就可以从包含按钮中“隐藏”命令,但内部按钮 secret 地知道如何访问它。

您可以离开CommandParameter照原样,因为它本身没有效果。

关于wpf - 在 WPF 中覆盖模板化按钮的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088876/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com