我有一个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设置)。
谢谢。