private void CommentList_ItemClick( object sender, ItemClickEventArgs e )
{
HSComment HSC = ( HSComment ) e.ClickedItem;
if ( HSC.Folded )
{
if ( HSC == HSComment.ActiveInstance ) return;
int i = CommentsSource.IndexOf( HSC );
// The Load more always appeared in the next level
// i.e. previous item is always a parent
HSComment ParentHSC = CommentsSource[ i - 1 ];
HSLoader<HSComment> CLoader = new HSLoader<HSComment>( ParentHSC.Id, SHTarget.COMMENT, Shared.ShRequest.GetComments )
{
ConvertResult = ( x ) =>
x.Flattern( y =>
{
y.Level += HSC.Level;
return y.Replies;
} )
};
CommentsSource.LoadStart += ( x, y ) => MarkLoading();
CommentsSource.LoadEnd += ( x, y ) => MarkNotLoading();
// Remove the LoadMore thing
CommentsSource.RemoveAt( i );
CommentsSource.InsertLoader( i, CLoader );
}
HSC.MarkSelect();
}