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

C# 如何查看RichTextBox值是否出现在UI上,c#,windows-phone-7,xaml,windows-phone-8,C#,Windows Phone 7,Xaml,Windows Phone 8,我有一个LongListSelector,并在其中使用RichTextBox <DataTemplate> <Grid> <RichTextBox> <Paragraph> <Run Text="{Binding Description}"/> </Paragraph> </RichTextBox&g

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

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

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

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

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

我怎样才能解决这个问题?如何等待
RichTextBox
加载完成?
(它是WP8应用程序)

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

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

尝试实现

当您设置
Description=“blabla”
时,它将通知您的
RichTextBox

希望对您有所帮助

尝试实施

当您设置
Description=“blabla”
时,它将通知您的
RichTextBox


希望能有所帮助

谢谢,很好。但我怎么知道这是最后一次呢?如果我是正确的,它会触发:1)当你进入页面时2)当你更改内容时,会触发3次。所以,如果(i==4)MessageBox显示,那么制作类似于i++if的东西。谢谢,我知道了。但我看到
LongListSelector
在滚动时检索新项目,因此它被触发。但我知道怎么处理。谢谢你,那很好。但我怎么知道这是最后一次呢?如果我是正确的,它会触发:1)当你进入页面时2)当你更改内容时,会触发3次。所以,如果(i==4)MessageBox显示,那么制作类似于i++if的东西。谢谢,我知道了。但我看到
LongListSelector
在滚动时检索新项目,因此它被触发。但我知道怎么处理。谢谢hanks@jimpanzer我已经实现了这一点。RichTextBox会随着值的更改而更新,但会很晚更新。我滚动到第40项,它会转到第40项,但因为RichTextBox有延迟,所以在我滚动之后,它的高度会增加。所以在最后,我在第30项,因为高度增长。你在RichTextBox中输入的post值。我使用绑定。每个项目我都有一个richtextbox。谢谢@jimpanzer,我已经实现了这个。RichTextBox会随着值的更改而更新,但会很晚更新。我滚动到第40项,它会转到第40项,但因为RichTextBox有延迟,所以在我滚动之后,它的高度会增加。所以在最后,我在第30项,因为高度增长。你在RichTextBox中输入的post值。我使用绑定。每个项目我都有一个richtextbox。
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));
          }
      }
  }