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));
}
}
}