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

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

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

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

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

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

Любые идеи кто-нибудь? Спасибо Марк

4 ответа

Решение

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

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

Я добавил ответ на похожий вопрос: Silverlight: Как связать DataGridColumn.Visibility?

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

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


<(UIELEMENT HERE) x: Name = "chkAllTeams" Visibility = "{Binding Converter = {StaticResource BoolToVisibilityConverter}, Path = AllTeams}" />

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

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

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

Другие вопросы по тегам