사용자 지정 컨트롤을 만들고 있습니다.종속성 속성을 기반으로 컨트롤을 어떻게 바꿀 수 있습니까?
이 컨트롤의 템플릿에서 CanExpand라는 종속성 속성의 값을 기반으로 루트 컨트롤에 대해 다른 컨트롤을 사용하고 싶습니다. CanExpand는 사용자 지정 컨트롤 클래스에서 정의됩니다.
CanExpand 사실이라면, 내가 확장기를 사용하여 표시 할이 :
<ControlTemplate ...>
<HeaderedContentControl ...>
<!--...-->
<ContentPresenter/>
</HeaderedContentControl>
</ControlTemplate>
가 나는를 사용하여 생각 : CanExpand이 거짓이면
<ControlTemplate ...>
<Expander ...>
<!--...-->
<ContentPresenter/>
</Expander>
</ControlTemplate>
, 내가 대신 HeaderedContentControl를 사용하여 표시 할 DataTemplateSelector,하지만 이것은 DataTemplate이 아닌 ControlTemplate이며 컨트롤의 Template에 대한 selector 속성이 없습니다.
자식 콘텐트가 하나의 컨트롤에서만 살아 있기 때문에 다른 컨트롤을 표시/숨김으로 설정할 수 없습니다. 또한, 나는 당신이 방아쇠를 사용하여 콘텐츠 속성을 변경할 수 있다고 생각하지 않습니다.
제안 사항?
감사합니다.
스타일 안에 EventTriggers 만있을 수 있다고 생각했습니다. –
아니요, 스타일에서 속성 트리거가 허용됩니다. 엘리먼트에 직접 트리거를 두어 EventTriggers 만 사용할 수 있습니다. –
그것은 정답입니다 :) – Anvaka