Я пытаюсь худо-бедно реализоввывать паттерн MVVM. При создании MenuItem возникли впросы по поводу привязки данных. Сейчас у меня в Model такая картина:
var menuCopyCutPasteDelete = new MenuItem[]
{
new MenuItem(){Header = "Копировать"},
new MenuItem(){Header = "Вырезать"},
new MenuItem(){Header = "Вставить"},
new MenuItem(){Header = "Удалить"},
};
var commands = new Model.Command[]
{
new Model.Command(Model.FileBrowserManagers.Copy),
new Model.Command(Model.FileBrowserManagers.Transfer),
new Model.Command(Model.FileBrowserManagers.PasteAsync),
new Model.Command(Model.FileBrowserManagers.Delete),
};
for (int i = 0; i < menuCopyCutPasteDelete.Length; i++)
{
int a = i;
menuCopyCutPasteDelete[a].Click += (sender,e) => commands[a].Execute(sender);
}
Выглядит очень ужасно. Возможно я должен создавать MenuItem элементы в xaml и биндить к ним ивенты? Или есть другой вариант? Подскажите пожалуйста.
Описываете в xaml меню:
<Menu>
<MenuItem Header="Файл">
<MenuItem Header="Копировать" Command="{Binding CopyCommand}"/>
<MenuItem Header="Вырезать" Command="{Binding CutCommand}"/>
<MenuItem Header="Вставить" Command="{Binding PasteCommand}"/>
<MenuItem Header="Удалить" Command="{Binding DeleteCommand}"/>
</MenuItem>
</Menu>
В VM создаете команды(реализации ICommand есть такие как DelegateCommand, RelayCommand, можно найти в интернете):
public class MainVM : BaseVM
{
public ICommand CopyCommand { get; }
public ICommand CutCommand { get; }
public ICommand PasteCommand { get; }
public ICommand DeleteCommand { get; }
}
в WPF есть стандартные уже реализованные команды попробуй их:
<MenuItem Header="Edit">
<MenuItem Command ="ApplicationCommands.Copy"/>
<MenuItem Command ="ApplicationCommands.Cut"/>
<MenuItem Command ="ApplicationCommands.Paste"/>
<MenuItem Command ="ApplicationCommands.Delete"/>
</MenuItem>
Эти команды даже сами назначят горячее клавиши и Header для MenuItem
Виртуальный выделенный сервер (VDS) становится отличным выбором
есть график функции типа chartНеобходимо написать код, что бы по наведению мышки на точку графика, показывались координаты точки
Нужно чтобы программа брала из textbox текст и отправляла, по нажатию кнопки, в то место, где грубо говоря ее вставят, будь то строчка в браузере...