C# Windows Phone。ObservableCollection作为聊天应用程序中ListView的源
我已经将一个IRC库移植到WinRT(它支持很多RFC1459和一些2812),现在我尝试使用它 作为IRC消息的视图,我选择了ListView(不知道这是否是个好主意)和RichTextBlock作为项目 我使用ObservableCollection来存储传入消息(一个类)。 它绑定良好,甚至在新消息到达时会滚动到底部(感谢Marco Minerva的行为!) 我还确定我需要将收集限制在一定范围内(比如100条消息)。所以,如果到达计数器,我在集合中使用RemoveAt(0) 问题在于,当RemoveAt通知ListView时,它会跳到消息列表的中心(而不是底部)。 我做错什么了吗 谢谢大家! 解决方案是:C# Windows Phone。ObservableCollection作为聊天应用程序中ListView的源,c#,listview,windows-runtime,windows-phone,observablecollection,C#,Listview,Windows Runtime,Windows Phone,Observablecollection,我已经将一个IRC库移植到WinRT(它支持很多RFC1459和一些2812),现在我尝试使用它 作为IRC消息的视图,我选择了ListView(不知道这是否是个好主意)和RichTextBlock作为项目 我使用ObservableCollection来存储传入消息(一个类)。 它绑定良好,甚至在新消息到达时会滚动到底部(感谢Marco Minerva的行为!) 我还确定我需要将收集限制在一定范围内(比如100条消息)。所以,如果到达计数器,我在集合中使用RemoveAt(0) 问题在于,当R
collection.CollectionChanged += (s, args) =>
{
var scrollViewer = behavior.AssociatedObject.GetFirstDescendantOfType<ScrollViewer>();
scrollViewer.UpdateLayout();
scrollViewer.Measure(scrollViewer.RenderSize);
scrollViewer.ChangeView(0, scrollViewer.ScrollableHeight, scrollViewer.ZoomFactor, false);
};
collection.CollectionChanged+=(s,args)=>
{
var scrollViewer=behavior.AssociatedObject.GetFirstDegenantofType();
scrollViewer.UpdateLayout();
scrollViewer.Measure(scrollViewer.RenderSize);
scrollViewer.ChangeView(0,scrollViewer.ScrollableHeight,scrollViewer.ZoomFactor,false);
};
解决方案是:
collection.CollectionChanged += (s, args) =>
{
var scrollViewer = behavior.AssociatedObject.GetFirstDescendantOfType<ScrollViewer>();
scrollViewer.UpdateLayout();
scrollViewer.Measure(scrollViewer.RenderSize);
scrollViewer.ChangeView(0, scrollViewer.ScrollableHeight, scrollViewer.ZoomFactor, false);
};
collection.CollectionChanged+=(s,args)=>
{
var scrollViewer=behavior.AssociatedObject.GetFirstDegenantofType();
scrollViewer.UpdateLayout();
scrollViewer.Measure(scrollViewer.RenderSize);
scrollViewer.ChangeView(0,scrollViewer.ScrollableHeight,scrollViewer.ZoomFactor,false);
};
嗯,我需要粘贴什么代码?调用RemoveAt的xaml和viewmodel都会有帮助。嗯,我需要粘贴什么代码?调用RemoveAt的xaml和viewmodel都会有帮助。嗯,我需要粘贴什么代码?xaml和调用RemoveAt的viewmodel都会很有帮助。