mercredi 28 avril 2010

Find a control in a WPF/Silverlight by name

Public static T FindVisualChildByName(DependencyObject parent, string name) where T : DependencyObject

{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
string controlName = child.GetValue(Control.NameProperty) as string;
if (controlName == name)
{
return child as T;
}
else
{
T result = FindVisualChildByName(child, name);
if (result != null)
return result;
}
}
return null;
}
This works for the Visual elements, not for the current elements of a parent: http://forums.silverlight.net/forums/p/85766/402922.aspx


Ref:
http://flatlinerdoa.spaces.live.com/Blog/cns!17124D03A9A052B0!566.entry
http://blogs.msdn.com/kmahone/archive/2009/03/29/visualtreehelper.aspx
http://enterpriseetc.com/post/VisualTreeHelper-Class-in-Silverlight.aspx

mercredi 21 avril 2010

SL Custom Controls

http://msdn.microsoft.com/en-us/magazine/cc721611.aspx#id0430049

Step 1: Create a New Silverlight Project
Step 2: Derive from Control (or ContentControl)
Step 3: Create a Control Template
Step 4: Create a Default Control Template
Step 5: Add Template Bindings
Step 6: Replace TextBlock with ContentPresenter
Step 7: Add a Click Event
Step 8: Add Visual States
The Completed Control

MVVM

http://blogs.silverlight.net/blogs/jesseliberty/archive/2010/01/28/mvvm-it-s-not-kool-aid.aspx

Silverlight: Refresh DataGrid

http://stackoverflow.com/questions/1826593/silverlight-3-how-to-refresh-a-datagrid-content