问题:使用textbox控件,消息总是在第一行显示
描述:使用了WPF的mvvm(Prism)模式进行设计的,然后textBox进行了数据绑定
textbox的xaml代码如下:
<TextBox x:Name="textBoxLog" HorizontalAlignment="Left" Margin="10,27,0,0" Grid.Row="6" TextWrapping="Wrap" Text="{Binding Log}" VerticalAlignment="Top" Width="499" VerticalContentAlignment="Top" HorizontalContentAlignment="Left" Grid.ColumnSpan="2" Height="62" Grid.RowSpan="2" VerticalScrollBarVisibility="Visible"/>
viewmodel类的代码如下:
public string Log
{
get { return _log; }
set { SetProperty(ref _log, value); }
}
然后我在viewmodel类中,写了一个方法:
public void PrintLog(string Msg)
{
string smsg = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " " + Msg + "\r\n";
this.Log += smsg;
}
这个方法我是用按钮去控制的,按钮按下的事件也是在viewmodel实现的,代码如下:
public void SendButtonClick()
{
this.PrintLog(string.Format("--->发 {0}", this.SendData));
}
因为采用mvvm模式,核心代码都不在主界面那边,因此也无法访问textBox ,所以无法使用ScrollToEnd()这个方法去让滚动条聚焦在最后一行
实在想不出来如何解决了,有大niu帮忙解答一波吗