문제

누구든지 다음이 작동하지 않는 이유를 말해 줄 수 있지만 그 후에는 그렇지 않습니까? 값 = 구문 대 후자의 명시 적 사용량에 주목하십시오. 차이점을 이해하지 못합니다.

<Style.Triggers>
    <DataTrigger Binding="{Binding ItemType}" Value="{x:Type log:FranchiseAiring}">
        <Setter Property="Template" Value="{StaticResource FranchiseRowStyle}" />
    </DataTrigger>
</Style.Triggers>

위는 예외를 던지고 아래는 잘 작동합니다.

<Style.Triggers>
<DataTrigger Binding="{Binding ItemType}">
    <DataTrigger.Value>
        <x:Type Type="{x:Type log:FranchiseAiring}" />
    </DataTrigger.Value>
    <Setter Property="Template" Value="{StaticResource FranchiseRowStyle}" />
</DataTrigger>

예외:DataTrigger의 바인딩과 값을 모두 지정해야합니다. 마크 업 파일의 객체 'System.Windows.Datatrigger'의 오류; 구성 요소/resourcedictionaries/logstyles.xaml '라인 14 위치 15.

스택 추적 : at System.Windows.Markup.xamlParseException.ThrowException (문자열 메시지, 예외 innerexception, int32 linenumber, int32 lineposition, uri baseuri,

도움이 되었습니까?

해결책

아마도 그것은 아마도 링크 된 버그 anurag로 인해 발생하지만, 당신이 사용한 두 가지 예는 XAML 관점에서 정확하게 동일하지 않다는 것을 알고 있어야합니다.

이것을 요소 속성 구문으로 변환하는 경우

Value="{x:Type whatever}"

당신이 얻는 것은 :

<DataTrigger.Value>
  <x:Type TypeName="whatever">
</DataTrigger.Value>

당신이 당신의 질문에 쓴 것은 실제로 일치합니다

Value="{x:Type Type={x:Type whatever}}"

typeextension의 의미론으로 인해 둘 다 내가 생각할 수있는 모든 상황에서 동일한 가치를 생산해야합니다. 그러나 다른 목적을 위해 그것들은 다를 수 있으며 WPF에서 다른 버그를 간질 질 수 있습니다.

이 때문에 가능합니다 Value="{x:Type Type={x:Type log:FranchiseAiring}}" 당신을 위해 일할 수 있습니다. 당신은 그것을 시도하고 알아 내고 싶을 수도 있습니다.

다른 팁

고정 된 버그입니다. 이것을 확인하십시오 :http://social.msdn.microsoft.com/forums/en/wpf/thread/3fd23613-6f1d-4ae6-a279-b99d6fdbc374

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top