473,842 Members | 1,847 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Command Pattern implementation with bound winforms controls?


We're working on implementing a Command Pattern design with our
application in order to help facilitate undo/redo. This is fine four
user actions we control which basically means menu actions.

However, it's not quite so clear for bound controls. We don't
directly interact with the change--the user makes a change in a
control, such as a grid, and the dataset stores the update. We
haven't interjected any code which we can funnel through a Command
object.

One work-around we're thinking is to react to the change events and
put a Command object in the stack wich some flag to indicate that the
action has already been accomplished (and thus the Execute method only
should be called for the Redo operation and not for the originating
operation).

How have others addressed this situation? Are there any examples
available of using Command pattern in a bound-control environment?

Thanks,

Sam

B-Line is now hiring one Washington D.C. area VB.NET
developer for WinForms + WebServices position.
Seaking mid to senior level developer. For
information or to apply e-mail resume to
sam_blinex_com.
Nov 17 '05 #1
3 6130
Hi

I reviewed the thread and find that there is a similar issue in the
newsgroup below. Now I have replied to you, you may go and take a look.
Subject: Command Pattern implementation with bound winforms controls?
Newsgroups: microsoft.publi c.dotnet.langua ges.vb

Best regards,

Peter Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

Nov 17 '05 #2
I recently created an architecture that did this.

The undo-redo architecture was interface based with the specific
implementations for the various objects conforming to the contract of the
interface but imlementing differently depending upon object type. The
interface included a do, undo and redo method. This separated the do from
the redo and enables you to create a null do with an operative redo.

For objects such as textboxes, a change notification occurred via the
standard events which created and stacked the command object as per normal,
the system called the null do command because the assumption was that
databinding would already have effected the change and subsequent undo /
redo actions were implemented using specialised code that had knowledge of
the bound control type being undone.

I can't post code as it was for a commercial client but the process was
pretty standard Command Pattern.

--
Bob Powell [MVP]
Visual C#, System.Drawing

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.

"Samuel R. Neff" <bl****@newsgro up.nospam> wrote in message
news:8p******** *************** *********@4ax.c om...

We're working on implementing a Command Pattern design with our
application in order to help facilitate undo/redo. This is fine four
user actions we control which basically means menu actions.

However, it's not quite so clear for bound controls. We don't
directly interact with the change--the user makes a change in a
control, such as a grid, and the dataset stores the update. We
haven't interjected any code which we can funnel through a Command
object.

One work-around we're thinking is to react to the change events and
put a Command object in the stack wich some flag to indicate that the
action has already been accomplished (and thus the Execute method only
should be called for the Redo operation and not for the originating
operation).

How have others addressed this situation? Are there any examples
available of using Command pattern in a bound-control environment?

Thanks,

Sam

B-Line is now hiring one Washington D.C. area VB.NET
developer for WinForms + WebServices position.
Seaking mid to senior level developer. For
information or to apply e-mail resume to
sam_blinex_com.

Nov 17 '05 #3

Thanks Bob, that looks like a good solution.

Peter's post brought up an issue I hadn't considered which is when
responding to events and putting commands with empty Do methods on the
undo stack, how do you differentiate from user initiated events and
code initiated events? Seems like that still is an issue with your
proposal.

Thanks,

Sam
On Wed, 23 Mar 2005 13:50:14 +0100, "Bob Powell [MVP]"
<bob@_spamkille r_bobpowell.net > wrote:
I recently created an architecture that did this.

The undo-redo architecture was interface based with the specific
implementation s for the various objects conforming to the contract of the
interface but imlementing differently depending upon object type. The
interface included a do, undo and redo method. This separated the do from
the redo and enables you to create a null do with an operative redo.

For objects such as textboxes, a change notification occurred via the
standard events which created and stacked the command object as per normal,
the system called the null do command because the assumption was that
databinding would already have effected the change and subsequent undo /
redo actions were implemented using specialised code that had knowledge of
the bound control type being undone.

I can't post code as it was for a commercial client but the process was
pretty standard Command Pattern.


B-Line is now hiring one Washington D.C. area VB.NET
developer for WinForms + WebServices position.
Seaking mid to senior level developer. For
information or to apply e-mail resume to
sam_blinex_com.
Nov 17 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
3579
by: Aaron Ackerman | last post by:
I am using typed datasets in an N-Tier Windows app using VB.NET. I know this posting cannot be fully explained in a single post that is why I am asking for someone to point me to a real world tutorial (in vb.net) that can show me how to use a bound Datagrid to it's fullest potential. I need to utilize the bound Datagrid in two modes. One were a bound Datagrid can be in edited directly utilizing bound combos and textbox right on the grid,...
1
2564
by: TEK | last post by:
Hello I'm wondering if anyone out there might give some input/suggestions/viewpoints around the Command pattern. In my case, the number one priority for using the pattern is undo support. Some now, a lot more in the future. I think I have a pretty good understanding about how the command pattern is tought to work, however during implementation I'm htting a couple of quite large design considerations that I'm not sure I have the answare...
4
1765
by: kaborka | last post by:
I have a WinForm with controls bound to a typed recordset that was generated by the Dataset Designer. There are several ComboBox controls with their DataSource bound to different lookup tables. Everything is working fine, except when I need to handle a null default value in the data record coming from the database. I want the combo whose SelectedValue is bound to that field to display the "default" entry in the combo in this case. I...
4
2476
by: spamfurnace | last post by:
Hi there. Ive just been reading about the Whidbey Provider Pattern on MSDN, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspnet/html/asp02182004.asp and i wanted to clarify my understanding of it and get some implementation feedback. Im a bit unsure so please correct me. What Im Doing
1
2370
by: jimb | last post by:
I can get the dropdownlist into the datagrid, and I can populate it, but I can't read it. Anybody have a working example of a dropdownlist in an editable grid? Thanks. -- .. http://sf-f.org, weblog and search engine for fans and writers of
6
1939
by: Samuel R. Neff | last post by:
We're working on implementing a Command Pattern design with our application in order to help facilitate undo/redo. This is fine four user actions we control which basically means menu actions. However, it's not quite so clear for bound controls. We don't directly interact with the change--the user makes a change in a control, such as a grid, and the dataset stores the update. We haven't interjected any code which we can funnel through...
14
4982
by: Kevin | last post by:
A couple of easy questions here hopefully. I've been working on two different database projects which make use of multiple forms. 1. Where's the best/recommended placement for command buttons for things like delete, save, edit, cancel buttons - in the footer, or on the form detail section? 2. If in the footer, how do you add them to the tab order?
6
2057
by: Bill44077 | last post by:
Hi, I am new to the MVP pattern and one of the main reasons that we are going this route is because we are doing Scrum with 30 day sprints - so we have a continually morphing design. We are using TDD as well to improve our ability to refactor... you probably all know this approach. Although the user iterface is supposedly one of the last things that you need to do, this is a web app and we have multiple nested Repeaters on the page....
13
1984
by: Dog Ears | last post by:
I've got a windows form that monitors the status of employees it polls a database every 2 seconds to fetch updates then update a underlying dataset bound to a grid using Invoke to marshal to the gui thread. What pattern should I be using now I'm upgrading to .net 2.0? APM, async delegates and BeginInvoke or Thread.Start etc...? Should I be creating a single thread manulally (or using threadpool) and and setting the polling on an...
0
9865
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9709
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10936
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10609
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
10303
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9448
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7025
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5695
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5882
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.