Hi
We have a popup gallery of employee photos that the user can use to select an employee.
There are also a couple of other ways the user can select an employee. If the user uses one of these ways, then we want to update the photo in the popup gallery preview area (as if the user selected it).
I can't find a way to do this. I've tried gallery.selecteditem and photo.bringintoview.
Thanks
I was able to do this with the SelectedItem property and BringIntoView method with this code:
PopupGalleryTool rootTool = (PopupGalleryTool)this.ultraToolbarsManager1.Tools["PopupGalleryTool1"];PopupGalleryTool instanceTool = (PopupGalleryTool)rootTool.SharedProps.ToolInstances[0];
rootTool.SelectedItem = rootTool.Items["Item5"];rootTool.SelectedItem.BringIntoView(instanceTool, null, GalleryArea.Preview);
HI
I have the same problem as Keltyx. I tried it with the solution from Mike but it didn't work. Is there a other solution for this problem.
GetPopupGalleryTool(KEY_PG_DATAINPUT_TEMPLATESELECTION).SelectedItemKey = m_oRibbonMenuViewModel.Template
If Not GetPopupGalleryTool(KEY_PG_DATAINPUT_TEMPLATESELECTION).UIElement Is Nothing Then GetPopupGalleryTool(KEY_PG_DATAINPUT_TEMPLATESELECTION).SelectedItem.BringIntoView(GetPopupGalleryTool(KEY_PG_DATAINPUT_TEMPLATESELECTION).SharedProps.ToolInstances(0), Nothing, GalleryArea.Preview)
End If
Private Function GetPopupGalleryTool(ByVal i_strKey As String) As PopupGalleryTool
Return CType(tbChannelPreCalc.Tools(i_strKey), PopupGalleryTool)
End Function
Hello Mike
your soulution works fine but sometimes i get a InvalidOperationException "The item to bring into view does not exist in the gallery preview.". Is it possible to check if a Item exists in the gallery preview ?
The PopupGalleryTool.Items collection has a Contains method which you could call to see if the item is present in the gallery.
I tried i with the contians Function of the gallery i get true back but i also get the InvalidOperationException.
Can you post a sample which reproduces the problem?
Hello Mike,
I have a a function in my Project wich is called WritePropertiestoScreen. This Function is called if i change somthing in my UI. In this this function i clear all the items from the PopUpGallery after that i fill it new. After that i check if a Item with the key xy existis in the Gallery.
If GetPopupGalleryTool(KEY_PG_CALCULATION_FIXPOINT).Items.Count > 0And Not IsNothing(m_oRibbonMenuViewModel.Fixpoint) Then GetPopupGalleryTool(KEY_PG_CALCULATION_FIXPOINT).SelectedItem = (From i As GalleryToolItem In GetPopupGalleryTool(KEY_PG_CALCULATION_FIXPOINT).Items _ Where i.Key = m_oRibbonMenuViewModel.Fixpoint).FirstOrDefault() m_bDoAgain = Not BringIntoViewSelectedPopUpGalleryItem(KEY_PG_CALCULATION_FIXPOINT) End If
Private Function BringIntoViewSelectedPopUpGalleryItem(ByVal i_strPopUpGalleryKey As String) As Boolean Dim bRet As Boolean = True If Not tbFixpoint.MdiParentManager Is Nothing Then Dim rootTool As PopupGalleryTool = CType(tbFixpoint.MdiParentManager.MergedTools.Item(i_strPopUpGalleryKey), PopupGalleryTool) For Each instanceTool As ToolBase In rootTool.SharedProps.ToolInstances If Not instanceTool.UIElement Is Nothing And TypeOf instanceTool Is PopupGalleryTool Then Try If GetPopupGalleryTool(i_strPopUpGalleryKey).Owner.Visible And CType(instanceTool, PopupGalleryTool).Items.Contains(rootTool.SelectedItem) Then rootTool.SelectedItem.BringIntoView(instanceTool, Nothing, GalleryArea.Preview) Else bRet = False End If Catch ex As Exception bRet = False End Try Else bRet = False End If Next End If Return bRet End Function
The m_bDoAgain is for the timer. I have a timer and if m_bDoAgain is true i call the function BringIntoView again.
Ok, after looking into this some more, it looks like an item can be hidden from the preview area if your gallery uses groups and the item doesn't belong to any group. It can also be hidden if the gallery contains filters and a filter is selected which doesn't include the item. Unfortunately, it doesn't look like there's an easy way to determine the visible items in the preview area. This can be considered a bug. I have forwarded this post to the Developer Support Manager and a DS engineer will be contacting you about this issue.