IXRFrameworkElement::SetBinding (Compact 2013)

3/28/2014

This method binds data to a property of an IXRFrameworkElement object.

Syntax

virtual HRESULT STDMETHODCALLTYPE SetBinding(
    __in const WCHAR* pTargetProperty,
    __in XRBinding* pBindingInfo
) = 0;

Parameters

  • pTargetProperty
    [in] Pointer to a string that specifies the name of the data-bound XAML for Windows Embedded property.
  • pBindingInfo
    [in] Pointer to an XRBinding structure that specifies the data-binding information to use for the property, including the data-flow direction and a path to the custom data-source property.

Return Value

Returns standard HRESULT values to indicate success or failure.

Remarks

You can also bind data to an element property by using a Binding Markup Extension in XAML.

Example

The following example code uses the SetBinding method to bind data from a TPropertyBag<Derived> object to a TextBlock. The example code works only if you already defined a custom class named StringPropertyBag that inherits from TPropertyBag<Derived>, and if you initialized the variable m_pText1 to an IXRTextBlock object in the visual tree.

Important

For readability, the following code example does not contain security checking or error handling. Do not use the following code in a production environment.

#include "XamlRuntime.h"
#include "XRPropertyBag.h"
#include "oleauto.h"

HRESULT MainPage::CreateData()
{
     HRESULT hr = S_OK;

     // Create an instance of the data source object
     XRPtr<StringPropertyBag> pObj;
     StringPropertyBag::CreateInstance(&pObj);
     pObj->InitializeProperties();

     // Set a property value in the data source object

     pObj->bstrProp1 = SysAllocString(L"New Text from Data Source");

     // Set the data source object as the data context for a TextBlock element.
     XRValue xrDataSource;
     xrDataSource.vType = VTYPE_PROPERTYBAG;
     xrDataSource.pPropertyBagVal = pObj;

     m_pText1->SetDataContext(&xrDataSource);

     // Bind data to a TextBlock element
     XRBinding pBindingInfo;
     pBindingInfo.Path = L"BinaryStringData1";
     pBindingInfo.Mode = XRBindingMode_OneWay;

     m_pText1->SetBinding(L"Text", &pBindingInfo);

     return hr; 
}

.NET Framework Equivalent

System.Windows.FrameworkElement.SetBinding

Requirements

Header

XamlRuntime.h

sysgen

SYSGEN_XAML_RUNTIME

See Also

Reference

IXRFrameworkElement
IXRFrameworkElement::SetDataContext