@@ -10,28 +10,22 @@ namespace MaterialDesignThemes.Wpf.Transitions;
1010/// time delayed according to position in a list, so cascading animations can occur.
1111/// </remarks>
1212[ MarkupExtensionReturnType ( typeof ( TimeSpan ) ) ]
13- public class IndexedItemOffsetMultiplierExtension : MarkupExtension
13+ public class IndexedItemOffsetMultiplierExtension ( TimeSpan unit ) : MarkupExtension
1414{
15- public IndexedItemOffsetMultiplierExtension ( TimeSpan unit )
16- {
17- Unit = unit ;
18- }
19-
2015 [ ConstructorArgument ( "unit" ) ]
21- public TimeSpan Unit { get ; set ; }
16+ public TimeSpan Unit { get ; set ; } = unit ;
2217
2318 public override object ProvideValue ( IServiceProvider serviceProvider )
2419 {
25- var provideValueTarget = serviceProvider . GetService ( typeof ( IProvideValueTarget ) ) as IProvideValueTarget ;
26- if ( provideValueTarget == null ) return TimeSpan . Zero ;
20+ if ( serviceProvider . GetService ( typeof ( IProvideValueTarget ) ) is not IProvideValueTarget provideValueTarget )
21+ return TimeSpan . Zero ;
2722
2823 if ( provideValueTarget . TargetObject != null &&
2924 provideValueTarget . TargetObject . GetType ( ) . FullName == "System.Windows.SharedDp" )
3025 //we are inside a template, return this, so we can re-evaluate later...
3126 return this ;
3227
33- var element = provideValueTarget ? . TargetObject as DependencyObject ;
34- if ( element == null ) return TimeSpan . Zero ;
28+ if ( provideValueTarget ? . TargetObject is not DependencyObject element ) return TimeSpan . Zero ;
3529
3630 var itemsControl = ItemsControl . ItemsControlFromItemContainer ( element ) ;
3731 if ( itemsControl == null )
@@ -45,29 +39,28 @@ public override object ProvideValue(IServiceProvider serviceProvider)
4539 }
4640 if ( itemsControl == null ) return TimeSpan . Zero ;
4741
48- var isOwnContainer = itemsControl . IsItemItsOwnContainer ( element ) ;
42+ bool isOwnContainer = itemsControl . IsItemItsOwnContainer ( element ) ;
4943 var container = isOwnContainer
5044 ? element
5145 : itemsControl . ItemContainerGenerator . ContainerFromItem ( element ) ;
5246 if ( container == null )
5347 {
54- var dataContext = ( element as FrameworkElement ) ? . DataContext ;
48+ object ? dataContext = ( element as FrameworkElement ) ? . DataContext ;
5549 if ( dataContext != null )
5650 container = itemsControl . ItemContainerGenerator . ContainerFromItem ( dataContext ) ;
5751 }
5852
5953 if ( container == null ) return TimeSpan . Zero ;
6054
61- var multiplier = itemsControl . ItemContainerGenerator . IndexFromContainer ( container ) ;
55+ int multiplier = itemsControl . ItemContainerGenerator . IndexFromContainer ( container ) ;
6256 if ( multiplier == - 1 ) //container generation may not have completed
6357 {
6458 multiplier = itemsControl . Items . IndexOf ( element ) ;
6559 }
6660
6761 if ( multiplier == - 1 ) //still not found, repeat now using data context
6862 {
69- var frameworkElement = element as FrameworkElement ;
70- if ( frameworkElement != null )
63+ if ( element is FrameworkElement frameworkElement )
7164 {
7265 multiplier = itemsControl . Items . IndexOf ( frameworkElement . DataContext ) ;
7366 }
0 commit comments