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.FSE.UI.Panes { /// /// Interaction logic for MachineConnectionPane.xaml /// public partial class MachineConnectionPane : UserControl { private List _lists; private bool _blockSelection; public MachineConnectionPane() { InitializeComponent(); _lists = new List(); _lists.Add(listEmulator); _lists.Add(listUsb); _lists.Add(listWifi); _lists.Add(listSignalR); _lists.ForEach(x => x.SelectionChanged += OnSelectionChanged); } private void OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (!_blockSelection && (sender as ListBox).SelectedItem != null) { _blockSelection = true; foreach (var list in _lists.Where(x => x != sender)) { list.SelectedIndex = -1; } ApplySelectedItem((sender as ListBox).SelectedItem); _blockSelection = false; } } private void ApplySelectedItem(object item) { var vm = DataContext as MachineConnectionPaneVM; if (vm != null) { vm.SelectedMachine = item as Integration.ExternalBridge.IExternalBridgeClient; } } private void ListBox_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { var vm = DataContext as MachineConnectionPaneVM; if (vm != null) { vm.SelectedMachine = (sender as ListBox).SelectedItem as Integration.ExternalBridge.IExternalBridgeClient; vm.ConnectToMachine(); } } } }