Дополнительные методы
-
T GetPropertyValue<T>(string value, string name, ScriptingData sd) — получает значение заданного свойства. Пример использования для свойства Prop1:
string p1 = GetPropertyValue<String>(this.Prop1, "Prop1", sd);
-
object GetPropertyValue(string value, string name, ScriptingData sd) — аналогично, но без строгой типизации. Пример для свойства Prop1:
string p1 = GetPropertyValue(this.Prop1, "Prop1", sd) as string;
-
void SetVariableValue<T>(string varName, T val, ScriptingData sd) — устанавливает значение свойства. Пример для свойства Prop1:
SetVariableValue\<String>("Prop1", "value...", sd);
-
void SetVariableValue(string varName, object val, Type dt, ScriptingData sd) — то же самое, но без строгой типизации. Пример:
SetVariableValue("Prop1", "value...", sd);
-
T GetContainerOfType<T>(IWFContainer container) — получает ссылку на ближайший контейнер определенного типа. Пример для контейнера PrimoCustomContainerV:
PrimoCustomContainerV cont = GetContainerOfType\<PrimoCustomContainerV>(this.WFContainer);
-
Window GenerateWindow(UserControl ctrl) — создает модальное окно с заданным содержимым.
-
IWFComponent ProduceControl(IWFContainer container) — метод вызывается при создании элемента. В нем можно проверять валидность точки создания и создавать контейнер, если его нет. Например:
public override IWFComponent ProduceControl(IWFContainer container)
{
if (GetContainerOfType<MyContainer>(container) == null)
{
MyContainer db = new MyContainer(container);
db.AddComponent(new MyComponent(db), null);
return db;
}
return new MyComponent(container);
}
- bool IsAllowedMoveToContainer(IWFContainer cont) — проверяет возможность перемещения элемента в заданную точку. Например, если хотим создать невозможность выноса элемента из контейнера:
public override bool IsAllowedMoveToContainer(IWFContainer cont)
{
if (GetContainerOfType<MyContainer>(cont) != null)
return true;
return false;
}