private static void OnSelectedItemsChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) { if( !DesignTimeHelper.GetIsInDesignMode() ) { if( e.OldValue != null ) { //Probabilmente c'è un handler da sganciare var handler = d.GetValue( selectionHandlerProperty ) as SelectionHandler; if( handler != null ) { handler.StopSync(); d.ClearValue( selectionHandlerProperty ); } } if( e.NewValue != null ) { //C'è un handler da agganciare var handler = new SelectionHandler(); handler.SartSync( d.CastTo<ListView>(), e.NewValue.CastTo<IList>() ); d.SetValue( selectionHandlerProperty, handler ); } } }
static void OnContentChanged( DependencyObject d, DependencyPropertyChangedEventArgs e ) { var isDesignMode = DesignTimeHelper.GetIsInDesignMode(); if( !isDesignMode ) { Ensure.That( d.GetType() ).Is<ItemsControl>(); d.CastTo<ItemsControl>().Loaded += onLoaded; } }