Geeks With Blogs

News kaleidoscope 1817, lit. "observer of beautiful forms," coined by its inventor, Sir David Brewster (1781-1868), from Gk. kalos "beautiful" + eidos "shape" (see -oid) + -scope, on model of telescope, etc. Figurative meaning "constantly changing pattern" is first attested 1819 in Lord Byron, whose publisher had sent him one.
Kaleidoscope Everything under the sun, ending in .Net

This is find that I came across while developing the Silverlight screen for MSFT BPO Invoice project.

Consider an instance wherein I am calling a xaml page as a popup in my parent xaml. And suppose we wanted to dynamically set a textbox field in the parent page with the  values that we select from the popup xaml.

I tried the following approaches to achieve the above scenario:

1. Creating an object of the parent page within the popup xaml and initializing its textbox field.

        ParentPage p = new ParentPage();
        ParentPage.txtCompCode.Text = selectedValue;

2. Using App app = (App)Application.Current and storing the selected value in app.
3. Using IsolatedStorage

All the above approaches failed to produce the desired effect since in the first case I did not want the parent page to get initialized over and over again and furthermore in all the approaches the value was not spontaneously rendered on the parent page.

After a couple of trials and errors I decided to tweak the g.cs file of the Parent xaml. *.g.cs files are autogenerated and their purpose is to wire xaml-element with the code-behind file. This file is responsible for having reference to xaml-elements with the x:Name-property in code-behind. So I changed the access modifier of supposed textbox fields to 'static' and then directly set the value in popup xaml page as so:

ParentPage.txtCompCode.Text = selectedValue;

This seemed to work perfectly.

We can access any xaml's g.cs file by going to the definition of InitializeComponent() present in the constructor of the xaml.

PS: I may have failed to explore other more efficient ways of getting this done. So if anybody does find a better alternative please feel free to get back to me.


Technorati Tags:
Posted on Sunday, March 21, 2010 5:27 PM | Back to top

Comments on this post: Dynamically setting a value in XAML page:

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © kaleidoscope | Powered by: