3

I cannot bind the Visible property of the WPF datagridtextcolumn to a boolean value.

My binding expression is,

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

I have checked that the converter works (bool to the visibility enum) and is in scope.

If I use the same expression for the header of the column, the header displays 'false' as expected.

Visible is a dependency property so should be bindable.

Anyone see what Im doing wrong? Or has anyone else been able to bind to the visible property.

Regards,

Matt

4 Answers 4

8

I worked this out.

DataGridCOlumn is not a framework element so the FindAncestor call was failing (DataGridColumn not part of visual tree)

Have to set source property of binding expression to a staticresource and it works fine.

Sign up to request clarification or add additional context in comments.

2 Comments

Here is the example of using StaticResource proxy to forward DataContext: tomlev2.wordpress.com/2011/03/21/…
i am using MVVM and it worked finde with the provided link: thomaslevesque.com/2011/03/21/…
1

Hard to say from so little of your code. What is in Visual Studio's Output window (under Debug)? That will often give you a clue as to the problem.

Comments

1

I was looking for the same thing and found an execellent way to do it in an article about forwarding datacontext to columns.

1 Comment

Yes. forwarding datacontext is the way to go. Similar but IMHO simpler approach: tomlev2.wordpress.com/2011/03/21/…
0

If you can bind from code you can use

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.