访问按钮样式中内容的属性
本文关键字:属性 按钮 样式 访问 | 更新日期: 2023-09-27 18:24:08
我正在尝试为按钮创建一个ControlTemplate
,并将CommandParameter
绑定到按钮Content
的某个属性。
目前情况如下:
<Style x:Key="MyStyleKey" TargetType="{x:Type Button}">
<Setter Property="controls:ButtonHelper.CornerRadius" Value="3"/>
// stuck here
<Setter Property="CommandParameter" Value="{Binding ((SomeDataClass)Content).Id}" />
<Setter Property="Template">
<Setter.Value>
// ...
</Setter.Value>
</Setter>
</Style>
称为
<Button Command="{Binding SetActive}" Content="{Binding SomeDataObject}" Style="{DynamicResource MyStyleKey}" />
通常我会直接设置CommandParameter
<Button Command="{Binding SetActive}" CommandParameter="{Binding SomeDataObject.Id}" Content="{Binding SomeDataObject}" Style="{DynamicResource MyStyleKey}" />
我对模板的理解是不要重复自己。由于Id
-属性是按钮Content
的一部分,将其作为CommandParameter
传递给模板是完全有意义的。
您需要设置相对来源:
<Setter Property="CommandParameter" Value="{Binding Content.Id, RelativeSource={RelativeSource Mode=Self}}"/>