Использование MVVM У меня есть ViewModel, который реализует команды. Я хотел бы получить содержимое буфера обмена в качестве параметра и делать с ним что-то.Можно ли отправить буфер обмена в качестве параметра команды?
XAML:
<Button Command="{Binding Path=ClipBoardAction}"
CommandParameter="{Binding SomeAwesomeCodeHereToPassCurrentClipboard}" />
C#:
private void ClipBoardAction(object parameter) {
//parameter is clipboard OR CLIPBOARD DATA like string[]
}
Возможно ли это? Если да, то что мне привязать в XAML?
EDIT: Работать до сих пор - просто подключить кнопку к событию Click и вставить код за клеем.
private void Button_Click(object sender, RoutedEventArgs e) {
//manually send command to object
string[] clipboard = Clipboard.GetText().Split(new Char[] { '\n' });
var but = sender as Button;
var viewModel = (FooViewModel)but.DataContext;
if (viewModel.ClipBoardAction.CanExecute(null)){
viewModel.ClipBoardAction.Execute(clipboard);
}
}
'Clipboard' статический класс в' системе. Пространство имен Windows (PresentationCore). Если вы включите эту ссылку, вы можете просто использовать 'Clipboard.WhateverFunction' в команде, не нужно передавать ей параметры. https://msdn.microsoft.com/en-us/library/system.windows.clipboard%28v=vs.110%29.aspx –
Не могли бы вы уточнить? Я не могу найти буфер обмена в системе, возможно, я неправильно создаю ресурс. – markokstate
'System.Windows.Clipboard.GetText()' вам не нужно передавать его через параметр, вы можете просто вызвать это внутри своего 'ClipboardAction' –