Kanzi 4.1.0
BindingHost Interface Reference

Configure bindings. More...

Inheritance diagram for BindingHost:
[legend]
Collaboration diagram for BindingHost:
[legend]

Public Member Functions

Binding CreateBinding (Binding sourceBinding)
 Creates a binding by copying an existing binding.
 
Binding CreateBinding (Property property, AnimationTargetPropertyAttributeEnum attribute, string code, BindingTypeEnum bindingMode, NodeReferenceBase pushTarget)
 Creates and configures a binding.
 
Binding CreateBinding (Property property, AnimationTargetPropertyAttributeEnum attribute, string code, BindingTypeEnum bindingMode=BindingTypeEnum.ONE_WAY)
 Creates and configures a One Way binding.
 
void DeleteBinding (Binding binding)
 Deletes a binding.
 
- Public Member Functions inherited from ProjectItem
void AddProperty (Property property)
 Adds a property to an item.
 
void AddProperty (string propertyName)
 Adds a property to an item.
 
void BeginBatchModification (string batchName)
 Begins a batch modification operation.
 
bool CanAddProperty (Property property)
 Checks whether Kanzi Studio allows you to add a specific property to an item.
 
bool CanAddProperty (string propertyName)
 Checks whether Kanzi Studio allows you to add a specific property to an item.
 
void CommitBatchModification ()
 Commits the current batch modification operation.
 
bool Delete ()
 Deletes a project item.
 
void DeregisterThumbnailUser (object user)
 Deregisters a registerd thumbnail user.
 
IEnumerable< PropertyGetAddableProperties ()
 Gets a list of properties which you can add to an item.
 
GetAncestor< T > ()
 Gets the nearest item of given type in the parent tree.
 
ProjectItem GetChild (string childName)
 Gets the child item of the current item with the given name.
 
GetChild< T > (string childName)
 Gets the child item of the current item with the given name and type.
 
int GetChildIndex (ProjectItem child)
 Gets the index of a child project item within this item's children collection.
 
IEnumerable< PropertyGetContextProperties ()
 Gets the context properties for this project item.
 
IEnumerable< PropertyGetFixedProperties ()
 Gets the fixed properties for this project item that cannot be removed.
 
IEnumerable< PropertyGetFrequentlyAddedProperties ()
 Gets the properties that are frequently added to this type of project item.
 
ProjectItem GetProjectItemByPath (string path)
 Gets a project item by its path relative to this project item.
 
string GetRelativeProjectPathTo (ProjectItem anotherItem)
 Gets the relative path from this project item to another project item.
 
IEnumerable< PropertyGetRemovableProperties ()
 Gets a list of properties which you can remove from an item.
 
BitmapSource GetThumbnail (int width, int height, bool showChildren, bool showFullScreen, Node contextNode)
 Gets the thumbnail image for a project item.
 
BitmapSource GetThumbnail (int width, int height, bool showChildren, bool showFullScreen, Node contextNode, float[] letterboxColorRGBA)
 Gets the thumbnail image for a project item.
 
IEnumerable< ProjectItemGetTreeItemsAsList ()
 Enumerates the items under this ProjectItem including this item itself, children, and grand children.
 
bool HasProperty (Property property)
 Checks whether an item has a specific property.
 
bool HasProperty (string propertyName)
 Checks whether an item has a specific property.
 
bool IsPropertyReadOnly (Property property)
 Checks whether the specified property is read-only on this project item.
 
void RegisterThumbnailUser (object user, uint width, uint height, bool showChildren, bool showFullScreen, Node contextNode)
 Registers a user for the thumbnail images for a project item.
 
void RemoveProperty (Property property)
 Removes a property from an item.
 
void RemoveProperty (string propertyName)
 Removes a property from an item.
 
void SetChildIndex (ProjectItem child, int index)
 Sets the index of a child project item within this item's children collection.
 
void SetPropertyReadOnlyStatus (Property property, bool? value)
 Sets the read-only status of the specified property on this project item.
 
void UpdateValidity ()
 Recalculates the validity the item.
 
- Public Member Functions inherited from PropertyContainer
object Get (Property property)
 Gets the value of a property.
 
object Get (string propertyName)
 Gets the value of a property.
 
Get< T > (TypedProperty< T > property)
 Gets the value of a property.
 
void Set (string propertyName, object value)
 Sets the value of a property.
 
void Set< T > (TypedProperty< T > property, T value)
 Sets the value of a property.
 
- Public Member Functions inherited from ChildContainer
string GenerateUniqueChildName (string defaultName)
 Generates a unique name.
 
string GetInvalidityReasonOfNewName (string newName)
 Returns the reason why the passed name is not valid.
 

Properties

IEnumerable< BindingBindings [get]
 Gets the bindings in a BindingHost.
 
- Properties inherited from ProjectItem
IEnumerable< ProjectItemChildren [get]
 Gets all child items of a project item.
 
string IconLocation [get]
 Gets the location of the icon for this project item in Kanzi Studio.
 
object IconModifier [get, set]
 Gets or sets the icon modifier for this project item.
 
string InvalidityReason [get]
 Gets the reason why this project item is in an invalid state, or null if the item is valid.
 
bool IsDeleted [get]
 Gets whether this project item has been deleted.
 
bool IsDisposed [get]
 Gets whether this project item has been disposed.
 
bool IsHidden [get, set]
 Gets or sets whether this project item is hidden in Kanzi Studio.
 
bool IsReadOnly [get, set]
 Gets or sets whether this project item is read-only.
 
bool IsValidState [get]
 Gets whether this project item is in a valid state.
 
string KzbUrl [get]
 Gets the kzb URL of a project item.
 
string Name [get, set]
 Gets or sets the name of a project item.
 
ProjectItem Parent [get, set]
 Gets or sets the parent of this project item.
 
string Path [get]
 Gets the path to this project item within the project.
 
Project Project [get]
 Gets the project in which this item is located.
 
Type ProjectItemType [get]
 Gets the type of this project item.
 
PropertyTypeLibrary PropertyTypeLibrary [get]
 Gets the Property Types library of the project of this item which stores all property types you create in a Kanzi Studio project.
 
ProjectItemProperties PropertyTypes [get]
 
object this[Property property] [get, set]
 Gets or sets the value of the specified property on this project item.
 
object this[string propertyName] [get, set]
 Gets or sets the value of the property with the specified name on this project item.
 
string ToolTip [get]
 Gets the tooltip text for this project item in Kanzi Studio.
 
string TypeDisplayName [get]
 Gets the type of a project item.
 
- Properties inherited from PropertyContainer
IEnumerable< PropertyProperties [get]
 Gets the properties in a project item or node component.
 

Additional Inherited Members

- Events inherited from ProjectItem
EventHandler< CollectionChangedEventArgs< ProjectItem > > ChildCollectionChanged
 Occurs when the children collection of this project item changes.
 
EventHandler< DeletedEventArgsDeleted
 Occurs after this project item has been deleted.
 
EventHandler< DeletedEventArgsDeleting
 Occurs when this project item is about to be deleted.
 
EventHandler< CollectionChangedEventArgs< ProjectItem > > DescendantChildCollectionChanged
 Occurs when the children collection of this project item or any of its descendants changes.
 
EventHandler< DeletedEventArgsDescendantDeleted
 Occurs after a descendant of this project item has been deleted.
 
EventHandler< DynamicPropertyChangedEventArgsDescendantDynamicPropertyChanged
 Occurs when a dynamic property value changes on this project item or any of its descendants.
 
EventHandler< ParentChangedEventArgsDescendantParentChanged
 Occurs when the parent of this project item or any of its descendants changes.
 
EventHandler< CollectionChangedEventArgs< string > > DescendantPropertyCollectionChanged
 Occurs when a property is added to or removed from this project item or any of its descendants.
 
EventHandler< ProjectItemEventArgsDisposing
 Occurs when this project item is being disposed.
 
EventHandler< DynamicPropertyChangedEventArgsDynamicPropertyChanged
 Occurs when a dynamic property value changes on this project item.
 
EventHandler< ParentChangedEventArgsParentChanged
 Occurs when the parent of this project item changes.
 
EventHandler< PathChangedEventArgsPathChanged
 Occurs when the path of this project item changes.
 
EventHandler< DynamicPropertyChangedEventArgsPreviewDescendantDynamicPropertyChanged
 Occurs before a dynamic property value changes on this project item or any of its descendants.
 
EventHandler< DynamicPropertyChangedEventArgsPreviewDynamicPropertyChanged
 Occurs before a dynamic property value changes on this project item.
 
EventHandler< CollectionChangedEventArgs< string > > PropertyCollectionChanged
 Occurs when a property is added to or removed from this project item.
 
EventHandler< ReplaceEventArgsReplacing
 Occurs when this project item is being replaced.
 
EventHandler ThumbnailChanged
 Occurs when the thumbnail of this project item changes.
 
EventHandler ValidityChanged
 Occurs when the validity state of this project item changes.
 

Detailed Description

Configure bindings.

This class represents a binding host which can have bindings.

Use bindings to update properties or property attributes of one node with the properties or property attributes of other nodes. Bindings allow nodes to automatically update the values of their properties in response to the changing attributes in other nodes or the occurrence of some external event.

See also
Binding

Member Function Documentation

◆ CreateBinding() [1/3]

Binding CreateBinding ( Binding sourceBinding)

Creates a binding by copying an existing binding.

Parameters
sourceBindingThe binding you want to copy to create a new binding.
Returns
The binding you create with this function.

Examples

To create a binding from an existing binding:

// This example creates a Text Block 2D node and binds the scale of the node on the x axis to the value 10.
// It then creates another Text Block 2D node and copies the binding to that node.
public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootNode node.
var rootNode = studio.ActiveProject.GetProjectItem("Screens/Screen/RootNode");
// Create a Text Block 2D node in the RootNode node.
var textBlock = studio.ActiveProject.CreateProjectItem<TextBlock2D>(rootNode.GenerateUniqueChildName("Text Block 2D"), rootNode);
// Create a binding which binds the scale of the Text Block 2D node on the x axis to the constant value 10.
var binding = textBlock.CreateBinding(Properties.Node2DLayoutTransformation, AnimationTargetPropertyAttributeEnum.SCALE_X, "10");
// Create another Text Block 2D node in the RootNode node.
var textBlock2 = studio.ActiveProject.CreateProjectItem<TextBlock2D>(rootNode.GenerateUniqueChildName("Text Block 2D"), rootNode);
// Create a binding for the second Text Block 2D node by copying the binding in the first Text Block 2D node.
textBlock2.CreateBinding(binding);
}

◆ CreateBinding() [2/3]

Binding CreateBinding ( Property property,
AnimationTargetPropertyAttributeEnum attribute,
string code,
BindingTypeEnum bindingMode,
NodeReferenceBase pushTarget )

Creates and configures a binding.

Parameters
propertyThe property that you want to bind.
attributeThe property field that you want to bind.
codeThe binding expression.
bindingModeThe binding mode.
pushTargetThe push target node for To Source binding.
Returns
The binding you create with this function.
See also
Binding

Examples

To create a binding:

// This example creates a Box node and a Text Box 2D node. The example then binds the text in the Text Box node to the
// Box node Render Transformation property Translation X property field.
public void Execute(PluginCommandParameter parameter)
{
// Get the component type library which contains the Kanzi component node types.
var componentTypeLibrary = studio.ActiveProject.ComponentTypeLibrary;
// Get the Screens/Screen/RootNode/Viewport 2D/Scene node.
var scene = studio.ActiveProject.GetProjectItem("Screens/Screen/RootNode/Viewport 2D/Scene");
// Create a Box node named Box in the Scene node.
studio.ActiveProject.CreateProjectItem<BoxMeshNode>(scene.GenerateUniqueChildName("Box"), scene);
// Get the Screens/Screen/RootNode node.
var rootNode = studio.ActiveProject.GetProjectItem("Screens/Screen").GetChild<EmptyNode2D>("RootNode");
// Create a Text Box 2D node in the RootPage node.
var textBox = studio.ActiveProject.CreateComponentNode(rootNode.GenerateUniqueChildName("Text Box 2D"), rootNode, componentTypeLibrary.GetComponentType(ComponentTypeNames.TextBox2D));
// Create a To Source binding that sets the Box node Render Transformation property Translation X property field based on the text in the Text Box node.
textBox.CreateBinding(
Properties.Node3DRenderTransformation,
"INT({@./TextConcept.Text})",
BindingTypeEnum.TO_SOURCE,
new NodeReference<BoxMeshNode>("relative://../Viewport 2D/Scene/Box"));
}

◆ CreateBinding() [3/3]

Binding CreateBinding ( Property property,
AnimationTargetPropertyAttributeEnum attribute,
string code,
BindingTypeEnum bindingMode = BindingTypeEnum.ONE_WAY )

Creates and configures a One Way binding.

Parameters
propertyThe property that you want to bind.
attributeThe property field that you want to bind.
codeThe binding expression.
bindingModeThe binding mode.
Returns
The binding you create with this function.
See also
Binding

Examples

To create a binding:

// This example creates a Box node and binds the scale of the node on the y axis
// to the location of the node along the x axis multiplied by 5.
public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootNode/Viewport 2D/Scene node.
var scene = studio.ActiveProject.GetProjectItem("Screens/Screen/RootNode/Viewport 2D/Scene");
// Create a Box node named Box in the Scene node.
var box = studio.ActiveProject.CreateProjectItem<BoxMeshNode>(scene.GenerateUniqueChildName("Box"), scene);
// Create a binding which binds the scale of the Box node on the y axis to
// the location of the Box node along the x axis and multiplies it by 5.
box.CreateBinding(Properties.Node3DLayoutTransformation, AnimationTargetPropertyAttributeEnum.SCALE_Y, "{@./LayoutTransformation}.TranslationX*5");
}

◆ DeleteBinding()

void DeleteBinding ( Binding binding)

Deletes a binding.

Parameters
bindingThe binding you want to delete.

Examples

To delete a binding:

// This example creates a Text Block 2D node and binds the scale of the node on the x axis to the value 10.
// It then creates another Text Block 2D node, copies the binding to that node, and deletes the binding from
// the first Text Block 2D node.
public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootNode node.
var rootNode = studio.ActiveProject.GetProjectItem("Screens/Screen/RootNode");
// Create a Text Block 2D node in the RootNode node.
var textBlock = studio.ActiveProject.CreateProjectItem<TextBlock2D>(rootNode.GenerateUniqueChildName("Text Block 2D"), rootNode);
// Create a binding which binds the scale of the Text Block 2D node on the x axis to the constant value 10.
var binding = textBlock.CreateBinding(Properties.Node2DLayoutTransformation, AnimationTargetPropertyAttributeEnum.SCALE_X, "10");
// Create another Text Block 2D node in the RootNode node.
var textBlock2 = studio.ActiveProject.CreateProjectItem<TextBlock2D>(rootNode.GenerateUniqueChildName("Text Block 2D"), rootNode);
// Create a binding for the second Text Block 2D node by copying the binding in the first Text Block 2D node.
textBlock2.CreateBinding(binding);
// Delete the binding from the first Text Block 2D node.
textBlock.DeleteBinding(binding);
}

Property Documentation

◆ Bindings

IEnumerable<Binding> Bindings
get

Gets the bindings in a BindingHost.

Examples

To get the bindings in a node:

// This example creates a Text Block 2D node, adds two bindings to it, and modifies the second binding.
// It then prints the property, property attribute, and binding expression of both bindings to the Kanzi Studio Log window.
public void Execute(PluginCommandParameter parameter)
{
// Get the Screens/Screen/RootNode node.
var rootNode = studio.ActiveProject.GetProjectItem("Screens/Screen/RootNode");
// Create a Text Block 2D node in the RootNode node.
var textBlock = studio.ActiveProject.CreateProjectItem<TextBlock2D>(rootNode.GenerateUniqueChildName("Text Block 2D"), rootNode);
// Create a binding which binds the scale of the Text Block 2D node on the x axis to the constant value 10.
var binding1 = textBlock.CreateBinding(Properties.Node2DLayoutTransformation, AnimationTargetPropertyAttributeEnum.SCALE_X, "10");
// Create a binding for the second Text Block 2D node by copying the binding in the first Text Block 2D node.
var binding2 = textBlock.CreateBinding(binding1);
// Set the property attribute of the binding in the second Text Block 2D node so that the binding binds
// the scale of the Text Block 2D node on the y axis to the constant value 10.
binding2.PropertyAttribute = AnimationTargetPropertyAttributeEnum.SCALE_Y;
// Print the property, property attribute, and binding expression of each binding in the Text Block 2D node
// to the Kanzi Studio Log window.
studio.Log("Bindings in the " + textBlock.Name + " node:");
foreach (var binding in textBlock.Bindings)
{
studio.Log(binding.Property.Name + " " + binding.PropertyAttribute + ": " + binding.Code);
}
}