스타일에서 사용자 지정 컨트롤의 속성을 설정하는 방법을 알고 싶습니다.자식에서 부모 속성 설정
'SubstrateState'라는 dependencyproperty가있는 'Substrate'라는 토글 버튼을 기반으로하는 사용자 정의 컨트롤이 있습니다. 열거 형 값을 취합니다.
별도의 파일에는 컨트롤에 상황에 맞는 메뉴를 추가하는 스타일이 있습니다.
사용자가 상황에 맞는 메뉴에서 메뉴 항목 중 하나를 누르면 속성이 미리 정의 된 값으로 트리거되기를 원합니다. 나는이 프로그램을 실행할 때
<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'에 값을 제공에서 예외가 발생했습니다."
내부 예외 "로컬 : 기판이 Int32의 유효한 값이 아닙니다."
나는 내 값 변환기에 중단 점을 넣었으므로 문제가 다른 곳에서 발생한다고 생각하지 않습니다.
내가 뭘 잘못하고 있니?
당신이 전체 컨트롤 템플릿을 제공 했습니까? 내 컨텍스트 메뉴를 볼 수 없기 때문에 내 관점에서 템플릿에 문제가 있습니다. – Alezis