Can’t seem to set the DataContext in XAML
Colleagues,
I’m experimenting with data binding. I wrote a simple test program with only one object representing a person and two TextBoxes bound to its properties (first and last names), which reside in the StackPanel layout. In the beginning, I was assigning the DataContext in the window’s constructor:
Code:
base.DataContext = m_objPerson;
That worked.
Then I’ve tried a different approach. Instead of assigning DataContext in code, I would like to assign it in XAML. StackPanel layout has a DataContext property. Shouldn’t it set the DataContext properties for all of the components contained in the layout? I’ve removed the assignment from code and added an assignment in XAML:
Code:
<StackPanel DataContext="m_objPerson">
Unfortunately, the text boxes were no longer bound. Could anyone help me find the error?
Cheer,
-Nick
Re: Can’t seem to set the DataContext in XAML
I think that to be able to set it this way, you need to have m_objPerson defined as "static resource". In debug, watch Output window, there I would expect error message like "m_objPerson is not defined".
Re: Can’t seem to set the DataContext in XAML
Quote:
Originally Posted by
boudino
I think that to be able to set it this way, you need to have m_objPerson defined as "static resource".
Could you explain how to define the static resource? It probably should look like:
Code:
<Window.Resources>
<!-- what goes here? -->
</Window.Resources>
But what goes in the middle?
Quote:
Originally Posted by
boudino
In debug, watch Output window, there I would expect error message like "m_objPerson is not defined".
I'm not getting any messages in the output window (me at all).
Re: Can’t seem to set the DataContext in XAML
Kender, rather than explaining here, I suggest you get a book on WPF. A book will be able to explain these WPF concept much better than what we could do in a forum.