Итак, у меня есть мой MainWindow.xaml с текстовым полем.
<Window x:Class="HelloICommand.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
...
<Grid>
<TextBox HorizontalAlignment="Left" Height="23" Margin="337,195,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120">
<TextBox.InputBindings>
<KeyBinding Command="{Binding }" Key="Enter"></KeyBinding>
</TextBox.InputBindings>
</TextBox>
</Grid>
</Window>
И, как вы можете видеть, я хочу привязать свой ключ ввода к тому месту, где я могу нажать кнопку ввода, и он показывает окно сообщения стекст, который находится в текстовом поле.
В моем MainWindow.cs я устанавливаю текст данных следующим образом.
public MainWindow()
{
InitializeComponent();
DataContext = new ServerViewModel();
}
А затем у меня есть фактическая ServerViewModel со всем остальным в нем Это где ястолкнуться с проблемой, как я могу передать текст из TextBox в этот метод прямо там, чтобы я мог видеть сообщение каждый раз, когда я нажимаю Enter.
class ServerViewModel
{
private TextBoxCommand textCommand { get; private set; }
public ServerViewModel()
{
textCommand = new TextBoxCommand(SendMessage);
}
//How do I pass the text from the textbox as a parameter here?
public void SendMessage()
{
MessageBox.Show("");
}
}
Интерфейс ICommand
class TextBoxCommand : ICommand
{
public Action _sendMethod;
public TextBoxCommand(Action SendMethod)
{
_sendMethod = SendMethod;
}
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
}
public event EventHandler CanExecuteChanged;
}