using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Tango.Scripting.IDE.Controls { public class SolutionItemControl : Control { public ISolutionItem SolutionItem { get { return (ISolutionItem)GetValue(SolutionItemProperty); } set { SetValue(SolutionItemProperty, value); } } public static readonly DependencyProperty SolutionItemProperty = DependencyProperty.Register("SolutionItem", typeof(ISolutionItem), typeof(SolutionItemControl), new PropertyMetadata(null)); public ICommand OpenCommand { get { return (ICommand)GetValue(OpenCommandProperty); } set { SetValue(OpenCommandProperty, value); } } public static readonly DependencyProperty OpenCommandProperty = DependencyProperty.Register("OpenCommand", typeof(ICommand), typeof(SolutionItemControl), new PropertyMetadata(null)); static SolutionItemControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(SolutionItemControl), new FrameworkPropertyMetadata(typeof(SolutionItemControl))); } public SolutionItemControl() { PreviewMouseDoubleClick += (_, __) => { if (SolutionItem.CanOpen) { OpenCommand?.Execute(SolutionItem); } }; } } }