2014-01-28 93 views
1

控件中有一个布尔型DependencyProperty,名为IsRunning,它指示控件正在执行某些操作。我想创建一个Style,该控件集的Visibility设置为可见如果IsRunning == true,或者折叠如果IsRunning == false将依赖属性绑定到样式中的可见性

控制可以在页面中使用这样的:

<TheControl Style="{StaticResource MyStyle}" IsRunning="{Binding CategoryListLoaded}"/> 

,我试过的风格(我也有试过TemplatedParent而不是自我没有运气):

<Style x:Key="MyStyle" TargetType="TheControl" > 
    <Setter Property="Visibility" Value="{Binding RelativeSource={RelativeSource Self}, Path=IsRunning, Converter={StaticResource BoolToVisibilityConverter}}"/> 
</Style> 

通过以上代码我得到一个XamlParseException。 我不想在页面中设置可见性,我想用样式来控制可见性,因为我有很多这些控件,只有一种样式。

+0

您不能在IsRunning属性的PropertyChangedCallback中设置控件的可见性吗?还是有其他原因使用风格? –

+0

我从.dll引用此控件,因此我无权访问该代码。 –

+0

“TheControl”是一个'UserControl'还是别的? – McGarnagle

回答

1

由于IsRunning是一个布尔值,你有没有尝试添加知名度直奔控制

<TheControl Style="{StaticResource MyStyle}" IsRunning="{Binding CategoryListLoaded}" Visibility="{Binding CategoryListLoaded, Converter={StaticResource BoolToVisibilityConverter}}"/> 
+0

我已经考虑过这个,但这将是最后的解决方案。最后,我不知道如何以一种风格来实现这一点,如果可能的话。 –

+0

试图找到解决方案后,似乎这并不容易,所以我认为这将是它,并将其标记为asnwer。 –

相关问题