Eto.Forms StackLayout of Labels 在添加时刷新整个列表

Eto.Forms StackLayout of Labels refreshing the whole list on Add

这是我打电话给 StackLayout.Items.Add(Label) 时发生的事情的视频:https://streamable.com/hczt8

好像整个列表都被清空到一个新的列表,简单的代码就是那个:

    public class ChatPanel : Scrollable
    {
        StackLayout _messages;

        public ChatPanel()
        {
            _messages = new StackLayout();
            Content = _messages;
            BackgroundColor = Colors.Azure;

            _currentAccountData.Chat.EvOnChatMessage += OnMessage; // Custom event when a message is received
        }

        void OnMessage(ChatMessage m)
        {
            Label label = new Label();
            string date = $"[00:00:00]";
            if (m.GetType().Equals(typeof(PlayerMessage)))
            {
                PlayerMessage message = (PlayerMessage) m;
                label.Text = $"{date} {message.Pseudo}: {message.Message}";
            }
            else
            {
                label.Text = $"{date} {((ServerMessage)m).Message}";
            }
            _messages.Items.Add(new StackLayoutItem(label)); // I tried without "StackLayoutItem" too
        }
    }

我找不到任何符合我需要的容器或控件。 (complete list here)

为什么刷新成这样?我可以使用另一个控件来避免这种情况吗?还是我滥用了组件?

标签不适用于此。 我使用了 RichtextBox 并设置了 Rtf 属性。 我不得不利用 this answer