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 のみが "Visibility" 依存プロパティを持ちます。

コンテキストでこの例を確認するには:

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

于 2009-06-11T23:05:50.753 に答える