5.3 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |
|---|---|---|---|---|---|
|
2026-04-16T03:28:40.550784+00:00 | Qwen/Qwen3-Coder-Next-FP8 | 1 | 9e6ad0b9e1f98318 |
Model
Purpose
GraphPropertyObject is a data model class designed to expose a standardized set of graph-related metadata properties for display and editing in a WPF PropertyGrid control (specifically, the Xceed WPF Toolkit PropertyGrid). It serves as a base or shared model for objects whose properties need to be presented in a structured, categorized UI—typically for configuration, debugging, or visualization of graph elements (e.g., nodes, edges, or signal traces in a DTS system). The class encapsulates user-facing metadata such as description, filtering criteria, data flags, and engineering unit (EU) conversion parameters, enabling consistent property browsing without requiring custom UI logic.
Public Interface
All members are instance properties; no methods or nested types are defined.
| Property | Type | Attributes | Description |
|---|---|---|---|
Description |
string |
[Category("Action")], [DisplayName("Description")], [Description("This property uses a TextBox as the default editor.")] |
Free-text description of the graph element. |
Filter |
string |
[Category("Action")], [DisplayName("Filter")], [Description("This property uses a TextBox as the default editor.")], [ItemsSource(typeof(CFCFilterItemSource))] |
Filter string (likely for narrowing displayed data). Uses CFCFilterItemSource as a source for dropdown suggestions (though the actual CFCFilterItemSource type is not defined in this file). |
DataFlag |
string |
[Category("Information")], [DisplayName("Data Flag")], [Description("This property uses a TextBox as the default editor.")] |
A flag indicating data status or type (e.g., "Valid", "Stale"). |
ShiftT0 |
double |
[Category("Information")], [DisplayName("Shift T0 (ms)")], [Description("This property uses a TextBox as the default editor.")] |
Time shift offset applied to the signal’s time base, in milliseconds. |
EuMultiplier |
double |
[Category("Information")], [DisplayName("EU Multiplier")], [Description("This property uses a TextBox as the default editor.")] |
Multiplicative factor for converting raw values to engineering units. |
EuOffset |
double |
[Category("Information")], [DisplayName("EU Offset")], [Description("This property uses a TextBox as the default editor.")] |
Additive offset for converting raw values to engineering units. |
Note
: All properties use
TextBoxeditors by default in the PropertyGrid. TheItemsSourceattribute onFilterimplies integration withCFCFilterItemSource, but its implementation is not included here.
Invariants
- No explicit validation or invariants are enforced in the class itself (e.g., no null checks, range validation, or required fields).
- All properties are publicly gettable/settable; no immutability guarantees.
- The
ShiftT0,EuMultiplier, andEuOffsetproperties are of typedouble, but no constraints (e.g., non-negative, finite) are specified in metadata or code. - The
Filterproperty’s valid values are intended to be constrained byCFCFilterItemSource, but the class does not enforce this at runtime.
Dependencies
External Dependencies (via imports):
System.ComponentModel– Used forCategoryAttribute,DisplayNameAttribute, andDescriptionAttribute.Xceed.Wpf.Toolkit.PropertyGrid.Attributes– ProvidesItemsSourceAttribute, used on theFilterproperty.
Type References (not defined here):
CFCFilterItemSource– Referenced as a type argument forItemsSourceAttributeonFilter. Its definition is not included in the provided source; likely a customIItemSourceimplementation for the PropertyGrid.
Depended Upon By:
- Inferred to be used by UI components (e.g., PropertyGrid instances) in WPF applications, likely within the
DTSsystem (e.g., for configuring graph elements in a test or visualization tool). - No other code in this file references it, so dependencies must be inferred from usage elsewhere in the codebase.
Gotchas
- Missing
CFCFilterItemSourcedefinition: TheItemsSourceattribute onFilterreferencesCFCFilterItemSource, but this type is not declared or imported in the provided source. Its behavior (e.g., item format, filtering logic) is unknown without additional context. - No validation on numeric properties:
ShiftT0,EuMultiplier, andEuOffsetaccept anydoublevalue (includingNaN,Infinity, or negative values), which may lead to runtime errors if consumed by downstream logic expecting valid EU conversion parameters. - No inheritance or interface implementation: The class is a plain POCO. If intended for data binding or serialization, consumers must ensure compatibility (e.g., via
INotifyPropertyChanged, though none is implemented here). - Hard-coded categories: Categories ("Action", "Information") are fixed; renaming or reorganizing them requires code changes.
- No documentation on EU conversion formula: While
EuMultiplierandEuOffsetsuggest linear conversion (EU = raw * EuMultiplier + EuOffset), this is not stated explicitly in the source.