Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » CExtPropertyStore question Collapse All
Subject Author Date
Krustys Donuts Aug 1, 2005 - 7:40 PM

Hi, I’m trying to get my different CExtPropertyStore objects combined so that I can modify their common properties. However, when I call combine and synchronize, all of the properties appear for each store

For example, instead of getting something like:

+ Store properties
   Color
   Height

I get:
+ Store1
   Color
   Height
+ Store2
   Color
   Height
+ Store 3
   Color
   Height

Essentially, each item whose properties need to be displayed in the property grid control derive from StoreBase, which inherits from CExtPropertyStore. When StoreBase is constructed, it loads the properties for the store, which boils down to calls like this:
CExtPropertyValue* pValue = new CExtPropertyValue( label.c_str());
CExtGridCellComboBox* pData = STATIC_DOWNCAST( CExtGridCellComboBox, pValue->ValueActiveGetByRTC( RUNTIME_CLASS(CExtGridCellComboBox)));
pValue->ValueActiveSet( pData);


Is it obvious what I’m doing wrong?

Furthermore, what is CExtPropertyValueMixed? I’ve got this annoying crash that I’m trying to fix, and I see a call to this class in the call stack, but it’s undocumented.

Do you have any FAQs available yet for working with the property grid control?

Krustys Donuts Aug 2, 2005 - 2:22 PM

Ok, we figured it out. In order for Combine to do what we think it should do, the categories obviously need to have the same name. Whoops!

Technical Support Aug 3, 2005 - 1:19 PM

You are absolutely right. You have 3 categories in the combined result instead of one because source categories have different names. The CExtPropertyValueMixed class is the internal part of the property grid control’s implementation. This class implements the property value which contains pointers to other property values in other property stores. Applying the value to a mixed property value will change all referenced values in other property stores. The CExtPropertyValueMixed class is instantiated during combining two or more property stores into one combined property store.