スタイルからカスタム コントロールのプロパティを設定する方法を知りたいです。
「SubstrateState」という依存プロパティを持つ「Substrate」というトグルボタンに基づくカスタム コントロールがあります。列挙型を値として取ります。
別のファイルには、コンテキスト メニューをコントロールに追加するスタイルがあります。
ユーザーがコンテキスト メニューのメニュー項目の 1 つを押すと、プロパティが事前定義された値でトリガーされるようにします。
<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 の有効な値ではありません。」
値コンバーターにブレークポイントを設定しましたが、トリガーされないため、問題は別の場所にあると考えています。
私は何を間違っていますか?