WPF MVVM UpdateSourceTrigger=Excplict
i've a contentcontrol in my Wpf-App (MVVM) which is bound to an object and displays the objects properties in textboxes, so the user can edit the values of 开发者_StackOverflowthe properties. I want to implement undo/redo functionality with the command pattern of the GoF. For this i need a point where i can create the command and set it into my undomanager. My idea was to add a submitbutton. When the button is pressed, i update the sources of the textboxes (my properties) and create my command object to make the changes undoable (saving the old state of the object and the new state). But: - For using a submit button i need to set UpdateSourceTrigger of the textboxes to Explicit. If i want to update my sources i need to reference the controls in my view, which is bad as far as i've learned. How can i do that? With MVVM i have to create a Command (WPF Command, not my undo redo command) for the SubmitButton but i don't see how to apply the changes to the properties from that command without referencing the textboxes (further hey are generated via datatemplates).
Thanks Walter
I assume your TextBox
controls are bound to the properties in the ViewModel
class. If you bind your submit button to a ViewModel Command
which in turn can add appropriate command to you Command Pattern Collection
and also changes some of ViewModel
properties, the values in the Textbox
controls will also be updated. Now, for a Textbox
to update it's value when the value of a property it is bound to changes, the ViewModel
class needs to implement INotifyPropertyChanged
interface and raise the PropertyChanged
event from the property setter with that's property's name as an argument.
精彩评论