2009-07-11 5 views

Répondre

2

Vous pouvez toujours créer une ressource comme ceci:

<Setter x:Key="setter1" Property="Content" Value="Not Connected" /> 

Cependant, vous ne pouvez pas utiliser des clés de ressources comme objet dans une collection.

Vous pouvez définir quelque part

<SomeObject Setter="{StaticResource setter1}"/> 

mais Setters sont presque toujours ajoutés aux collections et vous ne pouvez pas ajouter des clés de ressources dans la syntaxe de collecte de XAML.

Le seul scénario que je peux penser qui appuieraient ce serait de créer une ressource SetterBaseCollection avec ces deux paires identiques de Setters,

<SetterBaseCollection x:Key="settersKey"> 
    <Setter Property="Label.Content" Value="Not Connected" /> 
    <Setter Property="Label.Foreground" Value="Red" /> 
</SetterBaseCollection> 

<Style TargetType="{x:Type Label}"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding}" Value="{x:Null}" Setters="{StaticResource settersKey}"/> 

    // ... 

    </Style.Triggers> 
</Style> 

mais la propriété de collection DataTrigger.Setters est en lecture seule et ne peut pas être de xaml.

Donc, la réponse serait non.

1

Dans ce cas particulier, il est préférable de définir la casse non connectée par défaut (sans condition) et de créer uniquement un DataTrigger pour un cas différent.

Questions connexes