Silverlight DataGridTextColumn绑定可见性

时间:2009-06-11 19:56:03

标签: silverlight data-binding datagrid visibility

关注earlier post我现在正在尝试将DataGridColumns的可见性绑定到VM通知属性。 MSDN表明我应该能够轻松地做到这一点。

我已经有一个我知道的值转换器和VM通知属性(我已经在我的页面上的另一个元素上测试了这些:

<CheckBox x:Name="chkAllTeams" Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}"/>

此复选框控件可见性会像我预期的那样做出反应。当我在DataTextColumn上设置相同的绑定时,我在XAML的 Visibility = 行上得到AG_E_BAD_PARSER错误:

<data:DataGridTextColumn 
Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}"
/>

任何想法? 谢谢, 标记

4 个答案:

答案 0 :(得分:9)

DataGridTextColumn上的可见性是复选框上的另一个野兽。基本上,它不是依赖属性,不能是数据绑定的。如果需要此功能,可以继承DataGridTextColumn并添加自己的依赖项属性以获取行为。

  • Rectangle从UIElement获取其Visibility属性,并且是依赖项属性
  • DataGridTextColumn从DataGridColumn获取其可见性,而不是依赖项属性。

答案 1 :(得分:1)

我添加了一个类似问题的答案:Silverlight: How to bind DataGridColumn.Visibility?

答案 2 :(得分:-1)

您是否将BoolToVisibilityConverter设置为资源?

答案 3 :(得分:-2)

您需要使用datatemplate:

&lt; DataTemplate x:Key =“cBDT”&gt;
 &lt;(UIELEMENT HERE)x:Name =“chkAllTeams”Visibility =“{Binding Converter = {StaticResource BoolToVisibilityConverter},Path = AllTeams}”/&gt; &LT; / DataTemplate中&GT;

如前所述,只有UIElement具有“可见性”依赖属性。

要在上下文中查看此示例:

http://blogs.msdn.com/scmorris/archive/2008/04/14/defining-silverlight-datagrid-columns-at-runtime.aspx