如何查看RichTextBox值是否出现在UI上

本文关键字:UI 是否 何查看 RichTextBox | 更新日期: 2023-09-27 18:25:59

我有一个LongListSelector,并在其中使用RichTextBox

<DataTemplate>
    <Grid>
        <RichTextBox>
            <Paragraph>
                <Run Text="{Binding Description}"/>
            </Paragraph>
        </RichTextBox>
    </Grid>
</DataTemplate>

由于数据列表很长,RichTextBox的数据出现延迟。所有内容都已加载,但稍后会显示文本。

延迟没有问题,但当我试图通过.ScrollTo方法滚动到LongListSelector中的特定项目时,它会变得很烦人。在窗体或LLS的Loaded事件处理程序中(没有区别),我调用ScrollTo,但在屏幕上显示RichTextBox的文本之前,它的执行完成并滚动到该项。因此,在显示文本之后,它变得更长,并且不再在正确的项上。

我想延迟执行ScrollTo方法,让所有内容都显示在屏幕上,但由于我的应用程序不是多线程的,我最终无法成功睡眠或定时器。

我该如何解决这个问题?如何等待RichTextBox的加载完成?(这是一个WP8应用程序)

如何查看RichTextBox值是否出现在UI上

您可以尝试使用LayoutUpdated(),它上次激发内容时已加载。

尝试实现属性更改通知

public class YourClass: INotifyPropertyChanged
  {
      private string description;
      public event PropertyChangedEventHandler PropertyChanged;
      public string Description
      {
          get { return description; }
          set
          {
              description= value;
              OnPropertyChanged("Description");
          }
      }
      // Create the OnPropertyChanged method to raise the event 
      protected void OnPropertyChanged(string name)
      {
          PropertyChangedEventHandler handler = PropertyChanged;
          if (handler != null)
          {
              handler(this, new PropertyChangedEventArgs(name));
          }
      }
  }

当您设置Description = "blablabla"时,它将通知您的RichTextBox

希望对有帮助