2010-11-02 4 views
1

J'ai un WindowsFormsHost dont la visibilité passe de "Visible" à "Réduit" et vice versa en fonction de certains déclencheurs. Je veux aussi pouvoir lier cette "Visibilité" à une variable car j'ai besoin de pouvoir regarder le champ Visibilité pour certaines raisons, et je ne peux pas simplement "regarder" parce qu'ils sont dans deux projets différents (le style qui contient ce WindowsFormsHost est essentiellement un projet de ressources).Wpf liaison à la visibilité de WindowsFormHost

Quoi qu'il en soit, j'ai ceci:

<WindowsFormsHost Grid.Row="2" Name="PART_ToggleContainer" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
    Visibility="{Binding Path=IsVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged,Source={StaticResource StatusProvider}}" 
    > 

Et dans le parent modèle de contrôle que j'ai un MultiTrigger qui vérifie un couple champs de dépendance et tente de cacher la forme (et les travaux de dissimulation).

<ControlTemplate.Triggers> 
     <MultiTrigger> 
     <MultiTrigger.Conditions> 
     <Condition Property="IsBeingDragged" Value="True"/> 
     <Condition Property="IsWorking" Value="False" /> 
     </MultiTrigger.Conditions> 
     <Setter Property="IsVisibleDProp" Value="False"/> 
     <Setter TargetName="PART_ToggleContainer" Property="Visibility" Value="Collapsed" /> 
     </MultiTrigger> 
</ControlTemplate.Triggers> 

est ici la liaison que j'utilise pour une meilleure visibilité, « IsVisible », dans la classe qui obtient utilisé en tant que fournisseur de données.

private Visibility IsVisibleProperty = Visibility.Visible; 


public bool bIsVisible 
    { 
    get { return bIsVisibleProperty; } 
    set 
    { 
    if (bIsVisibleProperty == value) 
    { 
    return; 
    } 
    bIsVisibleProperty = value; 
    OnPropertyChanged("IsVisible"); 
    } 
    } 

Le setter n'est pas frappé lorsque la propriété est modifiée.

Des indices? J'ai également essayé une solution de contournement, pour définir cette dépendance "IsVisibleDProp" qui réside au même endroit que "IsBeingDragged" et "IsWorking", mais elle ne frappe jamais le setter non plus (bien que je place les deux autres par programmation, et IsVisibleDPropis défini à l'aide du multitrigger).

Merci.

Répondre

0

Je ne sais pas si vous désirez que ce soit, mais votre propriété est nommé bIsVisible et votre liant à une propriété nommée IsVisible

Assurez-vous également que le paramètre OnPropertyChanged correspond à la propriété qui change si WPF récupérera la nouvelle valeur de il.