I have hierarchical xamDataGrid which we would like to expand and collapse after click on button.
Also, we are using MVVM so there is no code behind.
So I found solution that we need to use IsExpanded in xaml using style for DataRecordPresenter. Something like this:
<Style TargetType ="{x:Type igDP:DataRecordPresenter}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataContext.ExpandAll, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type igDP:XamDataGrid}}}" Value="True"> <Setter Property="IsExpanded" Value="True"/> </DataTrigger> <DataTrigger Binding="{Binding Path=DataContext.ExpandAll, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type igDP:XamDataGrid}}}" Value="False"> <Setter Property="IsExpanded" Value="False"/> </DataTrigger> </Style.Triggers> </Style>
Off course is not working. But when I change property to for example Background then it's works fine.
Please help us.
OK. In that case I did new DependencyProperty as below
public static readonly DependencyProperty IsExpandedAllProperty = DependencyProperty.RegisterAttached( "IsExpandedAll", typeof(bool), typeof(ExtXamDataGrid), new UIPropertyMetadata(false, OnIsExpandedChanged));
And now my problem is solved :-)
Thanks for help
Daniel
Hello,
Currently, this is a known issue for us. This is because of the dependency property value precedence.
When the record is expanded, the value is set locally and the style trigger cannot override the local value as the local value has a higher precedence than a style trigger. You could override this with an animation, but then you will not be able to collapse the record, this time because the Animation has a higher precedence than the local value and the style trigger. We are currently looking for an alternative way of making this possible.