none
[UWP][VB.NET] Problem with accordion control not adding new items? RRS feed

  • Question

  • I have a sync fusion accordion control which will refuse to update its layout to include a new item I added to my collection whether its an observable collection or not. I want to try and collapse the accordion and see if the items are added but cannot  figure out how to do so. I want to loop and collapse each item in the accordion programmatically. I need to do this to see if the items are added correctly. It gives me a weird error too if I add a button in my XAML like I do not have enough visual screen space but I do (even with enough space on desktop layout). Here's what my page looks like and the XAML for it (yes I am into the second flip view item):

    <Page xmlns:my="using:Syncfusion.UI.Xaml.Controls.Layout" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:UIE"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:Notification="using:Syncfusion.UI.Xaml.Controls.Notification"
        x:Class="UIE.EvaluateItem"
        mc:Ignorable="d">
        <Page.BottomAppBar>
            <CommandBar x:Name="Appbarbottom">
                <CommandBar.SecondaryCommands>
                    <AppBarButton x:Name="AddSource" Label="Add Evaluation Source" IsEnabled="True" />
                </CommandBar.SecondaryCommands>
                <!--<CommandBar.Content>
                    <Grid/>
                </CommandBar.Content>-->
                <AppBarButton x:Name="Cancel" Label="Cancel" Icon="Cancel" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Visibility="Collapsed" />
                <AppBarButton x:Name="BtnAddItem" Label="Add Item" ToolTipService.ToolTip="Add Item to Evaluate" Icon="Add" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" />
                <AppBarButton x:Name="BtnSwitchToManual" ToolTipService.ToolTip="Switch to Manual" Label="Switch to Manual" Icon="Switch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" />
                <AppBarButton x:Name="BtnReturnMain" ToolTipService.ToolTip="Return To Main Menu" Label="Finished" Icon="Back"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" />
    
            </CommandBar>
        </Page.BottomAppBar>
        <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    
            <RelativePanel>
                <FlipView x:Name="EvaluateItemWizard" RelativePanel.AlignBottomWithPanel="True" RelativePanel.AlignRightWithPanel="True" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignTopWithPanel="True"  HorizontalAlignment="Left" Margin="0,60,0,0" VerticalAlignment="Top" Width="1280" Height="615">
                    <FlipViewItem Height="615">
                        <StackPanel>
                            <TextBlock Text="Evaluation Using Specified Source" TextAlignment="Center"/>
                            <TextBlock Text="Evaluation Sources"/>
                            <ComboBox x:Name="cboSource" Width="187"/>
                            <TextBlock Text="Evaluation Sources"/>
                            <ListBox x:Name="lstSources"/>
                            <TextBlock Text="Items in Database"/>
                            <ComboBox x:Name="cboEvalItem" Width="187">
                                <ComboBoxItem x:Name="cboDefaultItem" Content="Default Item"/>
                            </ComboBox>
                            <TextBlock  Text="Item to Evaluate"/>
                            <TextBlock x:Name="TxtEvalItem"/>
                            <!--<Button Name="AddItem"></Button>
                            <Button Name="AddSource"></Button>-->
                            <TextBlock x:Name="ItemWarning" Text="Warning:  Item must be in database to Perform a Manual or Automatic Evaluation" Height="42" TextWrapping="Wrap"/>
                            <ProgressBar x:Name="EvaluationProgress"  HorizontalAlignment="Left" Height="20"  VerticalAlignment="Top" Width="201"/>
                            <!--<Button Name="btnnext1" Content="Next"></Button>-->
                        </StackPanel>
                    </FlipViewItem>
                    <FlipViewItem VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                        <StackPanel  ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollMode="Enabled"   HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    
                            <TextBlock Text="Manual/Custom Evaluation" TextAlignment="Center"/>
                            <TextBlock Text="Evaluation Source (if necessary)"/>
                            <ComboBox x:Name="cboMSource" Width="187"/>
                            <TextBlock Text="Evaluation Source"/>
                            <ListBox x:Name="lstSources2"/>
                            <TextBlock Text="Items in Database"/>
                            <ComboBox x:Name="cboEvalItem2" Width="187">
                                <ComboBoxItem x:Name="cboDefaultItem2" Content="Default Item"/>
                            </ComboBox>
                            <TextBlock  Text="Current Item Selected"/>
                            <TextBlock x:Name="EvalItem2" />
                            <TextBlock Text="Current Item to Add"/>
                            <TextBox x:Name="TxtItem"/>
                            <Button x:Name="AddItem2" Content="Add Manual Item"></Button>
                            <my:SfAccordion RelativePanel.RightOf="EvaluateItemWizard"  x:Name="sfItems"   HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                <my:SfAccordion.HeaderTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding name}"></TextBlock>
                                    </DataTemplate>
                                </my:SfAccordion.HeaderTemplate>
                                <my:SfAccordion.ContentTemplate>
                                    <DataTemplate>
                                        <RelativePanel x:Name="relmainview"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                            <ScrollBar></ScrollBar>
                                            <RelativePanel x:Name="relPrice" HorizontalAlignment="Left" VerticalAlignment="Stretch" Height="200">
                                                <TextBlock x:Name="lblEvalPrice" Text="Prices"/>
                                                <ListBox x:Name="lstPrices" RelativePanel.Below="lblEvalPrice"/>
                                                <TextBlock x:Name="lblprice" Text="Price to Add:" RelativePanel.Below="lstPrices"></TextBlock>
                                                <TextBox x:Name="TxtPrice" RelativePanel.Below="lstPrices" RelativePanel.RightOf="lblprice"></TextBox>
                                                <Button x:Name="BtnAddPrice" Content="Add Price" Click="BtnAddPrice_Click" RelativePanel.Below="lstPrices" RelativePanel.RightOf="TxtPrice"></Button>
                                            </RelativePanel>
                                            <RelativePanel x:Name="relCondition" RelativePanel.RightOf="relPrice" Width="200" Height="200">
                                                <!-- relative panel for adding the condition later /-->
                                                <!--<TextBlock Name="lblTest" Text="{Binding name}"></TextBlock>-->
                                                <TextBlock x:Name="lblEvalCondition" Text="Conditions of Item"/>
                                                <ListBox x:Name="lstCondition"/>
                                                <TextBlock x:Name="lblCondition" Text="Condition:" RelativePanel.Below="lstCondition"></TextBlock>
                                                <ComboBox x:Name="cboCondition" RelativePanel.Below="lstCondition" RelativePanel.RightOf="lblCondition"></ComboBox>
                                                <!--<Button x:Name="BtnAddCondition" Content="Add Price" Click="BtnAddCondition_Click"  RelativePanel.Below="lstCondition" RelativePanel.RightOf="cboConditon"></Button>-->
                                                <!--Loading="lstCondition_Loading"/> /-->
                                                <!-- move the loading event handler code from lstCondition to the combo box's loading event handler /-->
                                            </RelativePanel>
    
                                        </RelativePanel>
                                    </DataTemplate>
                                </my:SfAccordion.ContentTemplate>
                            </my:SfAccordion>
    
                            <!--<Button Name="AddItem"></Button>
                            <Button Name="AddSource"></Button>-->
                            <TextBlock x:Name="ItemWarning2" Text="Warning:  Item must be in database to Perform a Manual or Automatic Evaluation"/>
                            <!--<Button Name="btnnext1" Content="Next"></Button>-->
                        </StackPanel>
    
                    </FlipViewItem>
                </FlipView>
    
                <TextBlock x:Name="TxtEvalTitle" HorizontalAlignment="Left"  Height="45" TextWrapping="Wrap" Text="Item Evaluation Wizard" TextAlignment="Center" VerticalAlignment="Center" Width="432" Margin="0,0,-370,-25" FontSize="18"/>
    
            </RelativePanel>
        </Grid>
    </Page>

    The main problem as you can see above is it only adds one item to the whole thing and does not populate the other controls in the template either (under relcondition relative panel in XAML above) despite the itemssource being more then one item. 

    Here's my code behind for AddItem2 which populates the control:

          'manualitemnstrs.Add(TxtItem.Text)
            sfItems.SelectionMode = AccordionSelectionMode.OneOrMore
            If TxtItem.Text <> "" Then
    
                Dim a As Byte = CByte(0)
                Dim b As New List(Of Byte)
                b.Add(a)
    
                Dim tmpiteminfo As ItemInfo
                tmpiteminfo.aquisitiondate = DateTime.Now.ToString
                tmpiteminfo.name = TxtItem.Text
                tmpiteminfo.evaluationSource = ""
                tmpiteminfo.itemcondition = ItemCondition.LooksLikeNew
                tmpiteminfo.price = 30.0
                tmpiteminfo.damaged = "NO"
                tmpiteminfo.itempicture = b.ToArray
                tmpiteminfo.itemid = 1
                itemlist.Add(tmpiteminfo)
                'If sfItems.ItemsSource IsNot Nothing Then
                '    Dim current As List(Of ItemInfo) = CType(sfItems.ItemsSource, List(Of ItemInfo))
    
                '    'tmpiteminfo.itemid = current.Count + 1
                '    'itemlist.Add(tmpiteminfo)
                '    current.Add(itemlist.Item(0))
                '    sfItems.ItemsSource = Nothing
                '    sfItems.ItemsSource = current
    
                'Else
                'End If
                If sfItems.ItemsSource IsNot Nothing Then
                    'sfItems.Items.Clear()
                    sfItems.ItemsSource = Nothing
                    sfItems.ItemsSource = itemlist
                    ' sfItems.UpdateLayout()
                Else
                    sfItems.ItemsSource = itemlist
                End If
            End If
        End If

    Any help with the above problem of data not loading/binding correctly?


    Once you eliminate the impossible, whatever remains, no matter how improbable, must be the truth. - Sherlock Holmes. speak softly and carry a big stick - theodore roosevelt. Fear leads to anger, anger leads to hate, hate leads to suffering - Yoda. Blog - http://www.computerprofessions.us

    • Moved by Breeze Liu Friday, November 3, 2017 7:56 AM off topic
    Wednesday, November 1, 2017 10:37 PM

All replies

  • Hi The Thinker,

    Here is the official forum for developing UWP apps and your issue is more relative to the third party accordion control, we don't support it here. You can ask it in its official forum website. Thanks for your understanding.

    Best regards,

    Breeze


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Edited by Breeze Liu Friday, November 3, 2017 7:55 AM
    Friday, November 3, 2017 7:55 AM