|
Please. You have created a question in one location, do not then go and create a question in another location. The best you can hope for then is a fragmented answer where different people give you information in two locations which is not coherent or, indeed, cohesive.
|
|
|
|
|
Thanks for your comment. the purpose was if somebody check Lounge on daily basis and not interested to view Question and Answer, then my question will get chance for solution.
but any way i got solution from following link: i think this may helpful to people who are looking for the same.
Beginning Silverlight 3[^]
Thanks,
Imdadhusen
sunaSaRa Imdadhusen
+91 99095 44184
|
|
|
|
|
Double posting is strictly frowned upon here. BTW, don't try to condescend to me with your bolding text. I've been an active user on this site for so long that I know the posting rules here. When you post a question in one place, then all of the answer to that question is in one place. When you post it in more than one place then the answer may be dealt with in multiple places. This means that a vital piece of information may be missed because the piece that is needed is in a different location than the one you're answering.
More importantly, these questions are meant to help others with the same problem. If somebody follows a link from Google, Bing or whatever search engine they choose, they may get part of an answer, not knowing that the bit they really need is in a completely different thread.
|
|
|
|
|
Sorry for inconvenience.
Can i delete the question from here?
sunaSaRa Imdadhusen
+91 99095 44184
|
|
|
|
|
Sadly not. Anyway, you've learned a valuable lesson about CPs posting etiquette, so no harm-no foul.
|
|
|
|
|
I have one main View inside that view i have multiple views(usercontrol) it is basically a Form to get the patient records.
Now how i can pass the values of main ViewModel to the Child control ViewModels and then get the value back when user save the Form Main View?
WANTED wasim khan(Killed 50 Innocent Buggs, Distroyed 200 Exception, make 5 Project Hostage) any Compnay Hire him will pay 30,000. Best place where u can get him is Sorcim Technologies Murre Road RWP
|
|
|
|
|
Presumably you have static versions of your viewmodels so the state of the data has not changed when you move from one control to another. Therefore when you save the main VM all the other data is sitting there ready to be saved in the other VMs.
This may break the MVVM model as the main VM is aware and uses the other VMs but as I'm not a purist so it does not bother me, I even have code in the codebehind (shock horror).
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Don't know about MEF in particular, but how does it construct all the VMs to put 'inside' your main VM -
The way I would do it (no Framework) would be to have references to each of the child VMs in my main VM (thus your main VM is truly describing the interaction)
The alternative is to use a Controller (or some singleton class) to which every viewModel has a reference, and so can use this to communicate. This allows for better abstraction (e.g. your main VM asks the Controller "save the patient's data, because the Save button command has been raised by my View"
The Controller either has direct access to the various data used by the other VMs, or has access to the other VMs from where it can obtain that data (e.g. VMBloodPressure, give me your data...)
___________________________________________
.\\axxx
(That's an 'M')
|
|
|
|
|
_Maxxx_ wrote: The alternative is to use a Controller
Isn't that just moving the linkage one step away, the controller still needs to be aware of all the VMs
Here is another thought, how about a message style where the main VM sends a message to save and the other VMs consume the message. All the VMs must subscribe to the message pump.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: the controller still needs to be aware of all the VMs
You're right - but I don't see not nuffin' wrong with that.
IN the example cited by the OP I would probably have a property of VM1, VM2 etc. in my parent Vm - and access either methods, messages or events on or from them.
The controller just allows for more consistent communication - your children VM ask the controller to do something (Hey controller, this data has changed, better handle that for me). The Controller then says to itself "Hey! this is a change in this data - I better let everyone know!" so it raises an event/sends a message/calls a method on a VM - whatever to let those interested parties know.
Mycroft Holmes wrote: how about a message style where the main VM sends a message to save and the other VMs consume the message.
Not sure that works - if a child Vm receives the message, how does it give the modified data back to the parent VM?
I prefer the "I've changed something, please deal with it" paradigm, rather than the "Hey, have you changed anything? If so, give me the changes." paradigm.
(Although, now I am thinking about at least implementing a "Some data has been changed by this VM" property in my base VM class - which in turn can send a message... So now the Parent VM can subscribe to any Child VM messages, and the message (at least potentially) can carry the modified data.
Hmmm
Child Vm1 changes the patient BP - it is now 'dirty' and sends a message to say so.
Parent Vm0 has subscribed to the "BP Has Changed" message which carries with it a BP object.
VM0 saves the data to the repository and sends out a "BP Has been Saved" message - which is (of course) subscribed to by the Vm1, which resets itself to "Clean"
Sorry to think outloud in a reply - no sensible buggers at work to talk to!
___________________________________________
.\\axxx
(That's an 'M')
|
|
|
|
|
I go with the last scenario (after Hmmm) except (there is always an except)
I would have vm1 (child) deal with it's own data (save to the DB) and tell VM0 that the data was saved. This assumes the database structure reflects the actual data where VM0 is the patient and VM1 is a BP record.
VM0 may need to reload the list of BP records when told by VM1 that the record was saved and this would be prompted by the message pump.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Because this is a medical system (and the last system I developed was a medical system!) there may be requirements to save multiple uncommitted changes at one time; In fact in the system I developed, I did exactly what you are suggesting, but used a caching mechanism at the back-end so nothing was finally committed until the consultation was complete.
It's amazing how much one can learn posting on CP! I'm in a situation where I am pretty much the sole developer, so don't have minds to bounce ideas off - every day I get home and completely change my MVVM application!
___________________________________________
.\\axxx
(That's an 'M')
|
|
|
|
|
@max thanks i think controler will help me.
WANTED wasim khan(Killed 50 Innocent Buggs, Distroyed 200 Exception, make 5 Project Hostage) any Compnay Hire him will pay 30,000. Best place where u can get him is Sorcim Technologies Murre Road RWP
|
|
|
|
|
Just spitballing here, but this situation is typically handled by the main VM knowing all of it's child VM's. I would probably look at using Reactive Extensions to observe the child VMs from the parent (as they should be firing property changed events when data changes), and the parent VM will react to the changes.
|
|
|
|
|
Nice ... I've not even heard of Reactive Extensions until I read this post. Thanks Pete!
Hope you're well!
|
|
|
|
|
Rx are really cool. I'm currently doing an article on using them with jQuery.
I am well. How are you doing mate?
|
|
|
|
|
Really good thanks fella. V. Busy! I've been and gone solo as a contractor! Pretty scary but going really well so far
|
|
|
|
|
Good job. Where are you at?
|
|
|
|
|
I left Occam for 9 months, encountered utter hell at two companies during that time and was then offered work contracting for Occam again. Was a no-brainer although I'm not doing WPF right now, lots of ASP.NET, IIS and SQL. I really want to find a WPF contract after this one ends.
|
|
|
|
|
Don't be surprised at the lack of WPF jobs out there... it seems pretty rare to me. I was looking for a new gig cuz I was tiring of my current one and only saw 2 or 3 wpf ads over 6 months. People are still on MFC / Winforms, or just scrapping desktop and going web only. Guess I'll stick around then since I'm 100% WPF now .
|
|
|
|
|
Yeah, they are thin on the ground at the moment it appears. Where are you based?
|
|
|
|
|
In my main siilverlight page, there is a hyperlink button which if clicked shows a child page. i.e.
private void hypShowPage_Click(object sender, RoutedEventArgs e)
{
childwindowname p = new childwindowname ();
p.Show();
}
Question:
Once, the ok button is clicked on th echild window page, I would like to refresh the
existing page (Main page).
How is this done please?
Thanks
|
|
|
|
|
arkiboys wrote: I would like to refresh the
existing page (Main page).
This is wrong, you need to refresh the DATA not the page. Presumably the child window changes some data and closes, you need to trap the close operation (I use a message pump) and refresh the data source (in you main VM/Codebehind) affected by the childwindow. As the data should be bound with onpropertychange events the xaml will automatically refresh.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Hi,
Yes, I meant to say to refresh the data on the main page.
I did read your suggestion several times. Still not sure how to do this.
Thanks
|
|
|
|
|
Hi,
Am using Infragistics calendar control in my WPF Application,
I have to disable the date which is less than current day when the user click on the calendar control, could u tell me how to do it...
|
|
|
|