Frage

Kann mir jemand sagen, warum die folgenden nicht funktioniert, aber die, nachdem sie tut? Beachten Sie den Wert = Syntax im Vergleich zur expliziten Nutzung auf den letzteren. Ich verstehe den Unterschied nicht.

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

wirft oben eine Ausnahme, arbeitet unter fein:

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

Ausnahme: müssen beide Bindung und Wert für Datatrigger angeben . Fehler beim Objekt 'System.Windows.DataTrigger' in Markup-Datei '; Komponente / ResourceDictionaries / LogStyles.xaml'. Linie 14 Position 15

Stack-Trace:    bei System.Windows.Markup.XamlParseException.ThrowException (String Nachricht, Exception innerexception, Int32 Zeilennummer, Int32 Lineposition, Uri baseUri,

War es hilfreich?

Lösung

Es ist es wahrscheinlich durch den Fehler verursacht Anurag verknüpft, aber Sie sollten sich bewusst sein, dass die beiden Beispiele, die Sie nicht genau identisch von einem XAML-Sicht verwendet werden.

Wenn Sie wandeln diese zu Element Eigenschaft Syntax

Value="{x:Type whatever}"

, was man bekommt, ist:

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

Was Sie in Ihrer Frage schrieb tatsächlich entspricht

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

Aufgrund der Semantik von TypeExtension, beide sollten den gleichen Wert in jeder Situation produzieren ich mir vorstellen kann. Aber auch für andere Zwecke können sie unterschiedlich sein, und sie können verschiedene Bugs in WPF kitzeln.

Aus diesem Grund ist es möglich, dass Value="{x:Type Type={x:Type log:FranchiseAiring}}" könnte für Sie arbeiten. Sie können es versuchen wollen und finden Sie heraus.

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top