将DependencyProperty绑定到样式中的可见性

时间:2014-01-28 19:53:10

标签: xaml windows-phone-7 windows-phone-8 windows-phone

控件中有一个名为DependencyProperty的布尔IsRunning,表示控件正在执行某些操作。我想创建Style Visibility此控件的IsRunning == true设置为IsRunning == false可见,或<TheControl Style="{StaticResource MyStyle}" IsRunning="{Binding CategoryListLoaded}"/> 时折叠。

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

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

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

{{1}}

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

2 个答案:

答案 0 :(得分:2)

我认为仍然不支持在样式绑定中进行操作......但是有一篇很好的旧文章,它有一个帮助器作为解决方案!在此处阅读:http://blogs.msdn.com/b/delay/archive/2010/11/10/the-taming-of-the-phone-new-settervaluebindinghelper-sample-demonstrates-its-usefulness-on-windows-phone-7-and-silverlight-4.aspx

答案 1 :(得分:1)

由于IsRunning是一个bool,您是否尝试过将可见性直接添加到控件

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