我想知道如何從樣式設置自定義控件的屬性。從子設置父項屬性
我有一個自定義控件基於一個名爲'Substrate'的togglebutton,我有一個名爲'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的有效值」。
我在我的價值轉換器放置斷點,他們從來沒有觸發,所以我認爲問題是在別處。
我在做什麼錯?
你提供整個控制模板?從我的角度來看,你的模板出了問題,因爲我什至看不到任何上下文菜單。 – Alezis