2009-11-23 7 views
2

J'ai un ComboBox lié à une propriété ViewModel appelée Property.DataTrigger ne fonctionne pas comme prévu

Property est un TypeDescriptor.

Lorsque l'utilisateur modifie la valeur dans le ComboBox, le Property est mis à jour.

Sur l'interface utilisateur je voudrais masquer ou faire différents contrôles visibles: zone de texte, combobox, sélecteur de date, etc.

Le problème est, le DataTrigger ne fonctionne pas comme prévu.

<Style x:Key="textboxStyle" 
       TargetType="{x:Type TextBox}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=Property.PropertyType}" 
          Value="{x:Type Type={x:Type sys:String}}"> 
        <Setter Property="Visibility" 
          Value="Visible" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
+1

WPF ne peut pas savoir si PropertyType a été modifié ou non. Ce n'est pas un DP. –

Répondre

0

Vous devrez peut-être écrire un convertisseur qui est appelé lorsque la valeur de 'Propriété' change. Le convertisseur peut être un convertisseur 'TypeDescriptior to Visibility'. La raison pour laquelle ce qui précède ne fonctionne pas est que 'PropertyType' ne déclenche pas INotifyPropertyChanged.

Questions connexes