여러 개의 확장기에 사용할 수있는 내 window.resources 내에 하나의 Style DataTrigger를 갖고 싶습니다. DataTrigger는 내 ViewModel 내부의 열거 형 값에 바인딩되며 열거 형 값에 따라 올바른 확장자를 축소해야합니다. 예 : 열거 형 값이 "A"로 설정된 경우 "A"유형과 연관된 확장기 만 표시되고 나머지 확장기는 축소됩니다.여러 컨트롤에 대해 하나의 데이터 트리거가 있습니다.
나는 이런 식의 생각 : 나는 당신이 의존하는 스타일의 계층 구조를 구축 할 수 Style.BasedOn를 사용할 수있는 트리거 코드 중복을 피하기 위해 각 콘크리트 확장기 클래스의 수를 수동으로 설치 스타일, 될 생각
<Style TargetType="{x:Type Expander}">
<Style.Triggers>
<DataTrigger Binding="{Binding Type}" Value="A">
// In here i would set the expander associated w/ "A" to Visible
// and have the rest of the expanders collapsed. Since TargetName is
// not allowed within a "Setter" property of a style, I am not sure on how to accomplish this.
</DataTrigger>
<DataTrigger Binding="{Binding Type}" Value="B">
// Same concept as above
</DataTrigger>
</Style.Triggers>
</Style>
누군가가 당신을 위해 대답을 할 수 있지만 XAML은 논리의 수준을 지원하는 것입니다 생각하지 않습니다
(나는이 예에서는 캔버스를 사용) 아래를 참조하십시오. 그것은 화면 지시에 대한 직접적인 전달 이상의 역할을합니다. Enum 값이 UI 컨트롤을 통해 설정되면 이벤트 처리기로 수행하거나 개별 Expanders에 트리거를 넣을 수 있습니다. – Paparazzi