Multiprocotol Terminalprogram (BAT)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MultiTerm/MultiTerm.Wpf/View/ConsoleView.xaml.cs

48 lines
1.3 KiB

using MultiTerm.Core.ViewModel;
using System;
using System.Windows.Controls;
using System.Windows.Input;
namespace MultiTerm.Wpf.View;
public partial class ConsoleView : UserControl
{
private ConsoleViewModel? viewModel;
public ConsoleView()
{
InitializeComponent();
}
/// <summary>
/// After user control finished loading, the data context is casted and stored locally.
/// </summary>
private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
// cast to correct type
if (this.DataContext is not ConsoleViewModel dataContextVm)
{
throw new InvalidOperationException($"{nameof(ConsoleView)} got wrong type of DataContext.");
}
// store locally
viewModel = dataContextVm;
}
private void SendableMessageTextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
// send if the key was enter
if (e.Key == Key.Enter)
{
// do not forward key => is handled
e.Handled = true;
this.viewModel!.Send();
}
}
private void DataTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
// scroll to end
if (sender is not TextBox textBox) { return; }
textBox.ScrollToEnd();
}
}