从另一个框架导航回来后,不会设置运行元素文本属性

本文关键字:设置 运行 元素 属性 文本 框架 另一个 导航 回来 | 更新日期: 2023-09-27 18:30:45

我正在尝试根据从 dot net 中的服务获取的记录数设置 Run 元素的文本属性,当我最初在主页上时,这些值设置正确,但是当我导航到另一个页面并返回主页时,属性显示值已设置(使用添加/快速监视),但它没有显示在 UI 上。下面是相同的代码

if (lstTabIndex != 0) 
{
  if (string.IsNullOrEmpty(msgCount.Text))
       totalMessages = query.Count();
  else
       totalMessages = query.Count() + Convert.ToInt32(msgCount.Text);
       msgCount.Text = Convert.ToString(totalMessages);
 }

下面是 XAML 代码

 <ListView x:Name="lstTabs" ItemContainerStyle="{StaticResource ListViewItemStyle}" IsActiveView="True" Background="#FFC0A789" BorderBrush="Blue" SelectionChanged="lstTabls_SelectionChange" FontSize="25" SelectionMode="Single" Margin="0,0,0,0" Grid.ColumnSpan="2">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <TextBlock x:Name="tabMessage" TextAlignment="Center" VerticalAlignment="Center" FontSize="25" Grid.Column="0" Width="Auto" Height="34" >
                Message
                <Run x:Name="msgCount" Foreground="Red" FontWeight="ExtraBold"></Run>
            </TextBlock>
            <TextBlock x:Name="tabTimeTracker" TextAlignment="Center" Grid.Column="1" Width="Auto" FontSize="25" RenderTransformOrigin="0.5,0.5" >
                TimeTracker
            </TextBlock>
        </ListView>

对此的任何帮助将不胜感激。

提前致谢

从另一个框架导航回来后,不会设置运行元素文本属性

好的,我为此得到了一个有点迂回的解决方案。

我已经在 OnNavigatedTo 覆盖函数中动态添加和删除了一个运行元素,它按照我想要的方式工作。不知道为什么正常的方式不起作用。下面是相同的代码

 TextBlock txtBlockObject = (TextBlock)lstTabs.FindName("tabMessage");
 txtBlockObject.Inlines.Remove(runElementObj);
 runElementObj = null;
 // Create a new instance of run element and add it to the text block
 runElementObj = new Run();
 runElementObj.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
 runElementObj.FontWeight = FontWeights.ExtraBold;
 txtBlockObject.Inlines.Add(runElementObj);