访问 属性 按钮样式的内容
Access property of content within button-style
我正在尝试为按钮创建一个 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
传递给模板是完全有意义的。
您需要设置relative source:
<Setter Property="CommandParameter" Value="{Binding Content.Id, RelativeSource={RelativeSource Mode=Self}}"/>
我正在尝试为按钮创建一个 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
传递给模板是完全有意义的。
您需要设置relative source:
<Setter Property="CommandParameter" Value="{Binding Content.Id, RelativeSource={RelativeSource Mode=Self}}"/>