Steveluo’s Blog

Just another weblog

Archive for February, 2009

attached property

Posted by steveluo on February 24, 2009


treeview double click binding:
  a smart way to use double click …

private static void OnMouseDoubleClickCommandChanged(DependencyObject target, DependencyPropertyChangedEventArgs e)
           UIElement element = target as UIElement; if (element != null)
if ((e.OldValue == null) && (e.NewValue != null))
UIElement.MouseDownEvent, new MouseButtonEventHandler(UIElementMouseLeftButtonDown), true);
//element.MouseLeftButtonDown += UIElementMouseLeftButtonDown;
else if ((e.OldValue != null) && (e.NewValue == null))
UIElement.MouseDownEvent, new MouseButtonEventHandler(UIElementMouseLeftButtonDown));
/element.MouseLeftButtonDown -= UIElementMouseLeftButtonDown;

private static void UIElementMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
             // gets the sender is UIElement and check ClickCount because we want double click only



              UIElement target = sender as UIElement;
if (target != null && e.ClickCount > 1)
                 ICommand iCommand = (ICommand)target.GetValue(MouseDoubleClickCommandProperty);
if (iCommand != null)
RoutedCommand routedCommand = iCommand as RoutedCommand;
// check if the command has a parameter using the MouseEventParameterProperty         
object parameter = target.GetValue(MouseEventParameterProperty);

                               // execute the command
if (parameter == null)
                             {       parameter = target;

                             if (routedCommand != null)
                                     routedCommand.Execute(parameter, target);
                                   iCommand.Execute(parameter);                              }


                                  e.Handled =  true;







Posted in WPF | Leave a Comment »

WPF Resources

Posted by steveluo on February 23, 2009


Syncfusion FAQ
 Best WPF forums MSDN’s WPF forums
Expression Blend forums to help style your WPF Apps
 Best WPF articles 1) xmal
2) data binding
     Data Binding Overview (MSDN)
     Windows Presentation Foundation Data Binding Part1
     Windows Presentation Foundation Data Binding: Part 2
     Flexible and Powerful Data Binding with WPF ( CoDe : part1, part2 )
3) Treeview 
     WPF treeviews on LINQ to SQL  
     LINQ AsHierarchy() extension method  part1 part2
4)  MVVM Pattern & CAL
      WPF Apps With The Model-View-ViewModel Design Pattern

Best WPF blogs *Beatriz Costa – WPF Data Binding
Charles Petzold’s WPF book blog
Fil Fortes
*john gossman   — An architect of WPF 
*Josh Smith
Karsten Januszewski
Kevin Moore’s Okoboji
Lester Lobo
Marcelo Lopez Ruiz
Rich Application (e.g. US map in listBox)
Rob Relyea
Tim Sneath
Windows Presentation Foundation SDK
The WPF blog by Lee Brimelow (no longer blogging about WPF)
 Best WPF tutorials  MSDN .Net 3.5 WPF’s WPF tutorials – Lots of video tutorials, all WPF
WPF: A Beginner’s Guide 1, 2, 3, 4, 5, 6
A Guided Tour of WPF
 Best examples  1)  CodeProject
 2)  Chart: 
 Best Miscellaneous WPF resources The Application Portfolio on Channel9’s WPF Wiki
The 3rd party controls list on Channel9’s WPF Wiki – An extension of resources provided on Channel9 – Expression Blend help for WPF application developers – A categorized WPF resource guide. – Yet another categorized WPF resource guide
     CheatSheet XAML for WPF Cheat Sheet 1.0
WPF XAML Data Binding Cheat Sheet
2008 WPF Boot Camp
WPF Disciples

Posted in WPF | Leave a Comment »

the relationship among WPF properties

Posted by steveluo on February 23, 2009

Properties ( CLR properties),  DependencyProperty and  Attached properties (Attached  DependencyProperty)
Attached properties are typically defined as a specialized form of dependency property that does not have the conventional property “wrapper”. (src)

a DependencyProperty is a special form of property that has the feature of being able to interact with WPF (styling, data binding, animation, etc.).

A DependencyProperty is always a property of an object derived from the DependencyObject class. Note that only Dependency Properties can be used as a binding target. A DependencyProperty is created using the static Register method of the DependencyProperty class.

Common Language Runtime (CLR) property is: it is the classic .NET class property.

an Attached DependencyProperty should be stored in a public static readonly field. This is to ensure its visibility to anyone wishing to use it.

from  Attached Properties Overview,

Posted in WPF | Leave a Comment »


Posted by steveluo on February 22, 2009

Exploring MSIL – Delegates and Events
Exploring MSIL – Properties
Exploring MSIL – Static and Instance Methods
The lies of the C# compiler…

Posted in C# | Leave a Comment »