7

在我之前的帖子之后,我现在尝试将 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

3 回答 3

9

DataGridTextColumn 上的可见性是复选框上的不同野兽。基本上,它不是依赖属性,也不能是数据绑定的。如果你需要这个功能,你可以继承 DataGridTextColumn 并添加你自己的依赖属性来获得行为。

  • Rectangle 从 UIElement 获取其 Visibility 属性,是一个依赖属性
  • DataGridTextColumn 从 DataGridColumn 获取其 Visibility 并且不是依赖属性。
于 2009-06-11T20:26:44.600 回答
-1

您是否将 BoolToVisibilityConverter 设置为资源?

于 2009-06-11T19:59:23.230 回答
-2

您需要使用数据模板:

<Da​​taTemplate x:Key="cBDT">
<(UIELEMENT HERE) x:Name="chkAllTeams" Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, Path=AllTeams}"/> </DataTemplate>

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

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

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

于 2009-06-11T23:05:50.753 回答