我正在尝试根据从dot net中的服务获取的记录数设置Run元素的text属性,当我最初在主页面上但是当我导航到另一个页面并返回时,这些值设置正确在主页面上,属性显示已设置的值(使用添加/快速监视),但它不会显示在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>
对此有任何帮助将不胜感激。
提前致谢
答案 0 :(得分:0)
好的,我得到了一个有点迂回的解决方案。
我在OnNavigatedTo覆盖函数中动态添加和删除了一个run元素,它的工作方式与我想要的一样。不知道为什么正常方式不起作用。 以下是相同
的代码 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);