public static void SetPropertyBinding(FrameworkElement element, SetterValueBindingHelper value) { if (null == element) { throw new ArgumentNullException("element"); } element.SetValue(PropertyBindingProperty, value); }
private static void ApplyBinding( FrameworkElement element, SetterValueBindingHelper item ) { if ( ( null == item.Property ) || ( null == item.Binding ) ) { throw new ArgumentException ( "SetterValueBindingHelper's Property and Binding must both be set to non-null values." ); } // Get the type on which to set the Binding Type type = null; if ( null == item.Type ) { // No type specified; setting for the specified element type = element.GetType (); } else { // Try to get the type from the type system type = System.Type.GetType ( item.Type ); if ( null == type ) { // Search for the type in the list of assemblies foreach ( var assembly in AssembliesToSearch ) { // Match on short or full name type = assembly.GetTypes ().Where ( t => ( t.FullName == item.Type ) || ( t.Name == item.Type ) ).FirstOrDefault (); if ( null != type ) { // Found; done searching break; } } if ( null == type ) { // Unable to find the requested type anywhere throw new ArgumentException ( string.Format ( CultureInfo.CurrentCulture, "Unable to access type \"{0}\". Try using an assembly qualified type name.", item.Type ) ); } } } // Get the DependencyProperty for which to set the Binding DependencyProperty property = null; var field = type.GetField ( item.Property + "Property", BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static ); if ( null != field ) { property = field.GetValue ( null ) as DependencyProperty; } if ( null == property ) { // Unable to find the requsted property throw new ArgumentException ( string.Format ( CultureInfo.CurrentCulture, "Unable to access DependencyProperty \"{0}\" on type \"{1}\".", item.Property, type.Name ) ); } // Set the specified Binding on the specified property element.SetBinding ( property, item.Binding ); }
public static void SetPropertyBinding( FrameworkElement element, SetterValueBindingHelper value ) { if ( null == element ) { throw new ArgumentNullException ( "element" ); } element.SetValue ( PropertyBindingProperty, value ); }
private static void ApplyBinding(FrameworkElement element, SetterValueBindingHelper item) { if ((null == item.Property) || (null == item.Binding)) { throw new ArgumentException("SetterValueBindingHelper's Property and Binding must both be set to non-null values."); } // Get the type on which to set the Binding Type type = null; if (null == item.Type) { // No type specified; setting for the specified element type = element.GetType(); } else { // Try to get the type from the type system type = System.Type.GetType(item.Type); if (null == type) { // Search for the type in the list of assemblies foreach (var assembly in AssembliesToSearch) { // Match on short or full name type = assembly.GetTypes().Where(t => (t.FullName == item.Type) || (t.Name == item.Type)).FirstOrDefault(); if (null != type) { // Found; done searching break; } } if (null == type) { // Unable to find the requested type anywhere throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "Unable to access type \"{0}\". Try using an assembly qualified type name.", item.Type)); } } } // Get the DependencyProperty for which to set the Binding DependencyProperty property = null; var field = type.GetField(item.Property + "Property", BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static); if (null != field) { property = field.GetValue(null) as DependencyProperty; } if (null == property) { // Unable to find the requsted property throw new ArgumentException( string.Format( CultureInfo.CurrentCulture, "Unable to access DependencyProperty \"{0}\" on type \"{1}\".", item.Property, type.Name)); } // Set the specified Binding on the specified property element.SetBinding(property, item.Binding); }