I amy understand your question wrong, but give it a try.
Your question is, if a user edit an entity in Propertie Window (as apposed to do it in AutoCAD editor manually, or run a command), is it possible for your application to know that one or more entities have been changed (due to the changes user made in Properties Window)?
If this is you want to know, read on.
Properties Window is just a UI tool for user to make changes to entities in drawing database. Once the changes in the properties Windows are committed, the user input will to applied to drawing database and Database.ObjectModified event will occur. This is no different from the situation when entities being modified by a command, or manully directly on Acad editor, or by your code.
So, simply handling Database.ObjectModified event would give you the opportunity to track which entities have been modified, regardless it is from command, or from Properties Window. Once you are able to ALWAYS know some objects are modified, then it is up to you to decide how to keep track of them and at what point after the changes your code start doing something (Make sure you are not paint yourself into corner of endless loop of Database.ObjectModified->Your code modify some entities->database.ObjectModified->Your ode modify entities->...).
Here code sample:
using aApp = Autodesk.AutoCAD.ApplicationServices.Application;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
namespace PropWinDBObjectChange
{
public class MyCommands
{
private Document _dwg = null;
private Editor _ed = null;
private bool _watched = false;
[CommandMethod("WatchDB")]
public void WatchDBChange()
{
if (!_watched)
{
if (_dwg == null)
{
_dwg = aApp.DocumentManager.MdiActiveDocument;
_ed = _dwg.Editor;
}
_dwg.Database.ObjectModified +=
new ObjectEventHandler(Database_ObjectModified);
_watched = true;
_ed.WriteMessage(
"\nStart watching modified objects in current drawing...\n");
}
else
{
if (_dwg == null) return;
_dwg.Database.ObjectModified -=
Database_ObjectModified;
_watched = false;
_ed.WriteMessage(
"\nWatching modified objects in current drawing stopped\n");
}
}
private void Database_ObjectModified(object sender, ObjectEventArgs e)
{
_ed.WriteMessage(
"\nObject modified: ObjectID={0}", e.DBObject.ObjectId.ToString());
}
}
}
To see the running effect, Netload the code's DLL; draw a few circles/lines...; enter command "WatchDB" to turn the event handler on; then select different entity and make change to it in Properties Window. You can see the Database.ObjectModified event handler shows entity's ObjectID at command line. Of course, you run a command, such as "move", "stretch", the event handler will also be called.
Since through Property Window, user can only modify existing entities (i.e. user cannot create new entity or ersae entity from there), handling Database.ObjectModified would cover whatever change to entity user makes from Properties Window.