Этот вопрос прост, но я не могу точно понять, как это сделать.В любом случае, чтобы отключить команду не через viewmodel в wpf?
Я решил использовать WPF, но я не хочу реализовывать некоторые из шаблонов MVVM классическим способом.
В моем проекте я решил создать свои модели с INPC и использовать их в качестве корма для моего XAML, как если бы они были View-модель, а .. так вместо того, чтобы:
View (< -Binding->) View-модели (< -INPC ->) Модель
, что я проектировал это:
View (< -связывающего ->) Модель.
Ограничение, конечно, заключается в том, что модель должна внедрять INPC, однако по сравнению с классическим MVVM на практике - модели также необходимо внедрить INPC, поэтому я считаю, что это совершенно нормально, как продуктивный ярлык, управляемый принципом DRY.
Я хочу также поддерживать команды, мне нравится концепция команд, и я понимаю, как реализовать команды при использовании модели представления. однако, как я описал, я решил пропустить модель представления.
Так обеспечивая я команда записывается следующим образом:
public class MyCommand : ICommand
{
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
//do somthing
}
public bool CanExecute(object parameter)
{
return true;
}
}
И что мой XAML выглядит Somthing так:
<UserControl x:Class=... blah blah...
xmlns:Model="clr-namespace:MyProject.BusinessLogic.Person"
xmlns:Commands="clr-namespace:MyProject.Commands">
<TextBox Text="{Binding FirstName}" />
<Button Command="What do I put here?" />
<UserControl>
Итак, что я ставлю в команде кнопку, чтобы позволить ему invoke MyCommand (что нет в модели)?
Plump a command? Является ли терминология такой странной в наши дни? – siride
lol, извините, я исправлю это - я имел в виду Plumb :) –
Это кажется довольно странным, конечно, любое командование связано с логикой представления, а модель представления - это именно то место, где можно поставить эту логику – devdigital