Приведите к флажести и выполните команду в способе MVVMC#

Место общения программистов C#
Ответить
Anonymous
 Приведите к флажести и выполните команду в способе MVVM

Сообщение Anonymous »

У меня есть вопрос, похожий на этот, но в более подробной ситуации. Я также пытаюсь реализовать решение, используя шаблон ViewModel View Model. Я также хочу, чтобы эта команда была вызвана, когда левая кнопка мыши нажимается (на самом деле, только на UP ), но только при проверке MouseUpcheckbox . Для Ischecked и проверил значение свойства в MouseleftButtonupevent Handler.

xaml

Код: Выделить всё

Execute


Execute on Mouse Up

< /code>

 c#< /strong> < /p>

public MainView()
{
InitializeComponent();
this.CommandBindings.Add(new CommandBinding(Execute, ExecuteExecuted));
MyDesigner.AddHandler(UIElement.MouseLeftButtonUpEvent, new RoutedEventHandler((o, eventArgs) =>
{
if (ExecuteOnMouseUp)
{
Execute.Execute(null, this);
}
}), true);
}

#region ExecuteOnMouseUp
/// 
/// ExecuteOnMouseUp Dependency Property
/// 
public static readonly DependencyProperty ExecuteOnMouseUpProperty =
DependencyProperty.Register("ExecuteOnMouseUp", typeof(bool), typeof(MainView),
new FrameworkPropertyMetadata((bool)false));

/// 
/// Gets or sets the ExecuteOnMouseUp property. This dependency property
/// indicates ....
/// 
public bool ExecuteOnMouseUp
{
get { return (bool)GetValue(ExecuteOnMouseUpProperty); }
set { SetValue(ExecuteOnMouseUpProperty, value); }
}
#endregion

#region Execute
/// 
/// The Execute command ....
/// 
public static RoutedUICommand Execute
= new RoutedUICommand("Execute", "Execute", typeof(MainView));

private void ExecuteExecuted(object sender, ExecutedRoutedEventArgs e)
{
...
}
#endregion
< /code>

Как я могу перенести этот код из моего представления в ViewModel? Стоит ли использовать прикрепленное свойство? Есть ли способ привязать значение флага с параметром в команде 
, или, может быть, в обработчике Canexecute ? Каков идиоматический способ справиться с такой ситуацией?>

Подробнее здесь: https://stackoverflow.com/questions/389 ... a-mvvm-way
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»