I am trying to add an UnboundField using a Style to add a button.
All works well when I have the ShouldCollapseEmptyCells set to false but when I try to set this to true it does as expected with the empty fields with the exception of the unbound field using the button style.
I have tried giving the field a value I have tried to set the field visibility but nothing works when set to true. How can I solve this issue?
The other issue has to do with how to set each individual datacards cell properties when I try to set a background color it sets it for all cards.
Thanks
If you want to collapse the space for that field, you can set the CellContentAlignment to ValueOnly, which will remove the LabelPresenter for that field and leave only the CellValuePresenter. This would work for the XamDataGrid as shown in this thread here. However, the XamDataCards uses a different layout and you will probably have to set the CellHeight as well.
<Style TargetType="{x:Type igDP:CellValuePresenter}" x:Key="ReviewButtonStyle"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <StackPanel Orientation="Horizontal" Height="40"> <Image HorizontalAlignment="Left" Width="20" Height="20" MouseLeftButtonDown="Image_MouseLeftButtonDown" Source="/InfragisticsProblem;component/Images/Book_openHS.png" /> <Label MouseLeftButtonDown="Image_MouseLeftButtonDown" >Review</Label> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type igDP:DataRecordPresenter}}}" Value="False"> <Setter Property="Visibility" Value="Hidden" /> </DataTrigger> <DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type igDP:DataRecordPresenter}}}" Value="True"> <Setter Property="Visibility" Value="Visible" /> </DataTrigger> </Style.Triggers> </Style>
The solution works for the background but I am still having issues with the unbound field.
How can I actually collapse the field?
When the item is hidden it shows a blank field which I would like to get rid of and Collapse does not actually collapse the field.
Thanks,
Thank you for clearing this out.
Even though you are checking for the cell's value in the InitializeRecord event of the XamDataGrid, you are still assigning this style to the whole field. This means that all cells inside that field will pick it up. What you need to do is conditional formatting based on its value. You can use this style :
<Style TargetType="{x:Type igDP:CellValuePresenter}" x:Key="TestBackColor">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Value, RelativeSource={RelativeSource Self}}" Value="Item 1">
<Setter Property="Background" Value="MistyRose" />
</DataTrigger>
</Style.Triggers>
</Style>
to change the background of a particular cell with a specific value. However, a better approach will be to use IValueConverters. You can see how here.
Regarding the unbound field, the XamDataCars considers this an empty cell, because it is not bound to anytihng - therefore it is empty. If you set the BindingPath of the unbound field to some field of your data source, it will no longer be empty (despite retemplating its CVP) and will be displayed.
For this, all you need to do is to change the setter to :
<Setter Property="Visibility" Value="Hidden"/>
and bind it to some field as discussed. The result : this cell will be visible when moues over.
Well there's the problem. Notice that all of the Name fields have a different background than the rest? What is intended here is that only the one named Item 1 should be highlighted. If you look at the code I am trying to set the background for only 'Item 1' but instead it is set for all card views. Am I going about this the wrong way? (works on grid).
The second issue is the missing Unbound Test field which should be visible but is not when the 'ShouldColapseEmptyCells' is set to True. What I am looking to do is to show the Unbound field only for certain situations.
This is sort of what I want when 'ShouldCollapseEmptyCells' is true. Except that I would like to be able to control when the Unbound field is displayed per card.
Thanks for the quick response.
Here is a screenshot of what I am seeing (no exceptions)