Видимость привязки Silverlight DataGridTextColumn

Следуя моему предыдущему сообщению теперь я пытаюсь привязать видимость DataGridColumns к свойству уведомления VM. MSDN предлагает мне сделать это с легкостью.

У меня уже есть значение преобразователя и свойство уведомления VM, которое работает know (я тестировал их на другом элементе на моей странице:

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

Эта видимость контроля флажка реагирует так, как я ожидал. Когда я устанавливаю ту же привязку в DataTextColumn, я получаю ошибку AG_E_BAD_PARSER в строке видимости XAML:

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

Какие-нибудь идеи? Благодаря, Марк

Ответ 1

Видимость в DataGridTextColumn - это другой зверь на флажке. В принципе, это не свойство зависимостей и не может быть привязано к данным. Если вам нужна эта функциональность, вы можете подклассифицировать DataGridTextColumn и добавить собственное свойство зависимостей для получения поведения.

  • Rectangle получает свое свойство Visibility от UIElement и является свойством зависимости
  • DataGridTextColumn получает свою видимость из DataGridColumn и не является свойством зависимости.

Ответ 3

Вы установили BoolToVisibilityConverter в качестве ресурса?

Ответ 4

Вам нужно будет использовать файл данных:

< DataTemplate x: Ключ = "cBDT" >

 < (UIELEMENT HERE) x: Name= "chkAllTeams" Видимость = "{Конверсия связывания = {StaticResource BoolToVisibilityConverter}, Path = AllTeams}" /" > </DataTemplate>

Как уже упоминалось ранее, только UIElement имеет свойство зависимостей "Видимость".

Чтобы увидеть пример этого в контексте:

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