0 people like it.

WPF/Silverlight Attached Property

Example of a WPF/Silverlight Attached Property (AP). This is a port of a C# AP implementation that can be found at http://www.silverlightshow.net/items/Attached-Properties-in-Silverlight.aspx.

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
open System.Windows
open System.Windows.Controls

// Example ported from http://www.silverlightshow.net/items/Attached-Properties-in-Silverlight.aspx
type TabPanel() = 
   inherit StackPanel()  
   /// Register the attached property
   static member TabStopProperty = 
       DependencyProperty.RegisterAttached("TabStop", typeof<bool>, typeof<TabPanel>, null) 
   /// Set the property
   static member SetTabStop (element:UIElement) (value:obj) =
       let _, boolValue = bool.TryParse (string value)
       element.SetValue(TabPanel.TabStopProperty, boolValue)
   /// Get the property
   static member GetTabStop (element:UIElement) = 
       element.GetValue TabPanel.TabStopProperty                                            
namespace System
namespace System.Windows
Multiple items
type TabPanel =
  inherit obj
  new : unit -> TabPanel
  static member GetTabStop : element:'a -> 'b
  static member SetTabStop : element:'a -> value:obj -> 'b
  static member TabStopProperty : 'a

Full name: Script.TabPanel

--------------------
new : unit -> TabPanel
static member TabPanel.TabStopProperty : 'a

Full name: Script.TabPanel.TabStopProperty


 Register the attached property
val typeof<'T> : System.Type

Full name: Microsoft.FSharp.Core.Operators.typeof
type bool = System.Boolean

Full name: Microsoft.FSharp.Core.bool
static member TabPanel.SetTabStop : element:'a -> value:obj -> 'b

Full name: Script.TabPanel.SetTabStop


 Set the property
type obj = System.Object

Full name: Microsoft.FSharp.Core.obj
System.Boolean.TryParse(value: string, result: byref<bool>) : bool
Multiple items
val string : value:'T -> string

Full name: Microsoft.FSharp.Core.Operators.string

--------------------
type string = System.String

Full name: Microsoft.FSharp.Core.string
property TabPanel.TabStopProperty: 'a


 Register the attached property
static member TabPanel.GetTabStop : element:'a -> 'b

Full name: Script.TabPanel.GetTabStop


 Get the property
Next Version Raw view Test code New version

More information

Link:http://fssnip.net/69
Posted:7 years ago
Author:Daniel Mohl
Tags: wpf , silverlight