2009-03-21 16 views
3

WPF datagridtextcolumnのVisibleプロパティをブール値にバインドできません。マイバインディング式があるバインディングWPF DataGridのDataGridColumnのVisibleプロパティ

{Binding Path=DataContext.IsThisColumnVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},Converter={StaticResource vc}} 

私は、コンバータが(可視列挙型にBOOL)を動作し、スコープ内にあることを確認しています。

列のヘッダーに同じ式を使用すると、ヘッダーに「偽」が表示されます。

Visibleは依存関係のプロパティなので、バインドする必要があります。

誰かが間違っているのを見てください。または他の誰かが可視のプロパティにバインドすることができました。

よろしく、

マット

答えて

8

私はこれを解決しました。 FindAncestorコールが(ビジュアルツリーのDataGridColumnの一部ではない)

失敗staticresourceに式をバインディングのソースプロパティを設定する必要がありましたので、

DataGridColumnのは、フレームワークの要素ではなく、それが正常に動作します。

+0

誰でもこの例を表示できますか? – Karsten

+8

StaticResourceプロキシを使用してDataContextを転送する例を次に示します。http://tomlev2.wordpress.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not -inherited/ – surfen

+0

私はMVVMを使用しており、提供されたリンクでfindeを動作させました:http://www.thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext -is-not-inherited/ – Pascalsz

1

あなたのコードのように少しから言うのは難しいです。 Visual Studioの[出力]ウィンドウ(デバッグ中)には何がありますか?それはしばしばあなたに問題の手がかりを与えます。

0

あなたが

BindingOperations.SetBinding(DatagridColumInstance, 
          DatagridColum.VisibilityProperty, 
          myNewBindDef); 
1

を使用することができ、コードからバインドすることができる場合、私は同じことを探しているとan article about forwarding datacontext to columnsでそれを行うにはスチールハーフメッシュマスク方法を見つけました。

+2

はい。転送datacontextは行く方法です。同様のしかしIMHO簡単なアプローチ:http://tomlev2.wordpress.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not-inherited/ – surfen

関連する問題