When an unhandled exception is thrown Application.Current.DispatcherUnhandledException is invoked. Hence the code written in your handler 'dispatchUnhandled' is executed. Do i miss your specific question?
Manish Jain (MJ)
When an unhandled exception is thrown Application.Current.DispatcherUnhandledException is invoked. Hence the code written in your handler 'dispatchUnhandled' is executed. Do i miss your specific question?
Manish Jain (MJ)
I made some changes to the given xaml code to make it work... Hope the code snippet will help
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="False">
<Setter Property="Expander.ExpandDirection">
<Setter.Value>
Left
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="True">
<Setter Property="Expander.ExpandDirection">
<Setter.Value>
Down
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="True">
<Setter Property="TextBlock.LayoutTransform">
<Setter.Value>
<RotateTransform Angle="0"></RotateTransform>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="False">
<Setter Property="TextBlock.LayoutTransform">
<Setter.Value>
<RotateTransform Angle="90"></RotateTransform>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
I have made some changes in your given xaml to make it working, Please refer the xaml code below: <Style.Triggers> <DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="False"> <Setter Property="Expander.ExpandDirection"> <Setter.Value> Left </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="True"> <Setter Property="Expander.ExpandDirection"> <Setter.Value> Down </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="True"> <Setter Property="TextBlock.LayoutTransform"> <Setter.Value> <RotateTransform Angle="0"></RotateTransform> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding ElementName=MyExpander, Path=IsExpanded}" Value="False"> <Setter Property="TextBlock.LayoutTransform"> <Setter.Value> <RotateTransform Angle="90"></RotateTransform> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers>
You implementation force Class 1 and 2 to implement "hello(var1, var2,var3)" just because you want to have a extra method for Class 3. This is not a good design to follow. You should follow Open to extend and close to modification methodology. you might create an extension of class A and implement it for Class 3. Please refer the approach below:
abstract class A
{
public abstract void hello(var1, var2); // This will be only for class 1 & class 2 (Existing function)
}
abstract class A1 : A
{
public abstract void hello(var1, var2, var3); // Want to make this available for class 3 only. (Want to add this new function)
}
Implement Class A for Class 1 and Class 2 Implement Class A1 for Class 3
Maddy