我想知道如何从样式中设置自定义控件的属性。
我有一个基于名为“Substrate”的切换按钮的自定义控件,在该按钮上我有一个名为“SubstrateState”的依赖属性。它需要一个枚举作为值。
在一个单独的文件中,我有一种向控件添加上下文菜单的样式。
当用户按下上下文菜单中的菜单项之一时,我希望该属性以一些预定义的值触发。
<Style TargetType="{x:Type local:Substrate}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:Substrate}">
<Grid>
<Grid.ContextMenu>
<ContextMenu Background="#212121">
<MenuItem Header="Aborted">
<MenuItem.Style>
<Style TargetType="MenuItem">
<Style.Triggers>
<Trigger Property="IsPressed"
Value="True">
<Setter Property="{Binding SubstrateState, RelativeSource={RelativeSource AncestorLevel=local:Substrate}, Converter=converter:StringToSubstrateStatesConverter}"
Value="Aborted" />
</Trigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
</ContextMenu>
</Grid.ContextMenu>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
当我运行它时,我得到:“在 'System.Windows.Baml2006.TypeConverterMarkupExtension' 上提供值引发异常。”
内部异常“local:Substrate 不是 Int32 的有效值”。
我在我的值转换器中设置了断点,它们从不触发,所以我认为问题出在其他地方。
我究竟做错了什么?