2026-06-05 13:44:39 +09:00

85 lines
2.4 KiB
C#

// Copyright (c) 2020 LG Electronics Inc.
// SPDX-License-Identifier: LicenseRef-LGE-Proprietary
using Aurora;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace AuroraMotor.Views
{
public partial class UCAuroraMotor : UserControl
{
public static readonly DependencyProperty SelectedMotorProperty
= DependencyProperty.Register(
nameof(SelectedMotor),
typeof(AuroraMotorBase),
typeof(UCAuroraMotor),
new FrameworkPropertyMetadata(
(d, e) => (d as UCAuroraMotor).SelectedMotorChanged(e)
)
);
UCAuroraMotorViewModel ViewModel { get; }
public AuroraMotorBase SelectedMotor
{
get => GetValue(SelectedMotorProperty) as AuroraMotorBase;
set => SetValue(SelectedMotorProperty, value);
}
public UCAuroraMotor()
{
ViewModel = new UCAuroraMotorViewModel(
Application.Current.AuroraEnv().EventObservable
);
InitializeComponent();
DataContext = ViewModel;
}
void SelectedMotorChanged(
DependencyPropertyChangedEventArgs e)
{
ViewModel.SelectedMotor = SelectedMotor;
}
void ExecuteJogCommand(
object sender,
string commandProperty,
object param = null)
{
(sender as UIElement).Focus();
var cmd = DataContext
.GetType()
.GetProperty(commandProperty)
.GetValue(DataContext) as ICommand;
cmd.Execute(param);
}
private void OnJogPositivePressed(
object sender,
System.Windows.Input.MouseButtonEventArgs e)
{
ExecuteJogCommand(sender, "CMD_JogPositive");
e.Handled = true;
}
private void OnJogNegativePressed(
object sender,
System.Windows.Input.MouseButtonEventArgs e)
{
ExecuteJogCommand(sender, "CMD_JogNegative");
e.Handled = true;
}
private void OnJogStop(
object sender,
System.Windows.Input.MouseButtonEventArgs e)
{
ExecuteJogCommand(sender, "CMD_Stop");
e.Handled = true;
}
}
}