WPF DependencyProperties

前端 未结 6 2045
孤城傲影
孤城傲影 2021-01-05 18:12

I have just realized I\'ve been coercing binding/dependency properties and not really fundamentally understanding the concept.

Heres the dependency property:

6条回答
  •  无人及你
    2021-01-05 18:52

    The problem your having is definitely related to your DataContext. The {Binding} extension needs to know where the property lives that you are binding to. The default location it looks at is the elements DataContext which by default is always set to the DataContext of it's parent element. If you walk the DataContext up the logical tree to the parent window, The DataContext would be null (because the DataContext of your window is null). Therefore your {Binding} on your textblock is saying "Bind my Text property to the Problem roperty of my DataContext...which is null.

    There are a couple of ways to solve this. One would be to do just like Jobi mentioned and set the Element property of you binding to point to the Window where the DependencyProperty is defined like this:

    
    

    Another option would be to set the DataContext of your Window to point to itself. That way all the elements contained in it's content will all have the DataContext of the window.

    
    

    Now anytime you need to binding to properties defined in the window (like your Problem dependency property), then you can just do this:

    
    

提交回复
热议问题