2010-11-02 111 views
1

我有一个WindowsFormsHost的可见性基于某些触发器从“可见”更改为“折叠”,反之亦然。我也希望能够将这个“可见性”绑定到一个变量,因为我需要能够查看可见性字段出于某些原因,我不能只是“看”它,因为他们在两个不同的项目(持有这个WindowsFormsHost的风格基本上是一个资源项目)。Wpf绑定到WindowsFormHost的可见性

不管怎么说,我有这样的:

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

而且在控制模板父我有一个multitrigger,检查一对夫妇的依赖性文件,并试图隐藏表单(和隐藏的作品)。

<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> 

这里是结合我使用的可视性,“可见性”,在被用作数据提供程序的类。

private Visibility IsVisibleProperty = Visibility.Visible; 


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

当属性改变时,setter不会被命中。

任何线索?

我也尝试了一种解决方法,设置这个“IsVisibleDProp”依赖关系,它与“IsBeingDragged”和“IsWorking”位于同一个地方,但它从来没有碰到过setter(尽管我通过程序设置了另外两个, IsVisibleDPropis使用multitrigger设置)。

谢谢。

回答

0

不知道,如果你想要它是,但你的财产被命名为bIsVisible和你绑定到一个名为IsVisible

同时确保OnPropertyChanged参数的变化如此之WPF将检索新值的属性相匹配属性它。

相关问题