private async void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (IsSetting) { return; } var comboBox = (ComboBox)sender; if (comboBox.SelectedItem == null) { return; } var command = new PipeCommands.SetTrackerSerialNumbers(); command.Head = (HeadTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "HMD" }).ToTuple(); command.LeftHand = (LeftHandTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "コントローラー" }).ToTuple(); command.RightHand = (RightHandTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "コントローラー" }).ToTuple(); command.Pelvis = (PelvisTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "トラッカー" }).ToTuple(); command.LeftFoot = (LeftFootTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "トラッカー" }).ToTuple(); command.RightFoot = (RightFootTrackerComboBox.SelectedItem as TrackerInfo ?? new TrackerInfo { TypeName = "トラッカー" }).ToTuple(); await Globals.Client.SendCommandAsync(command); }
private void SetTrackersList(List <Tuple <string, string> > list, PipeCommands.SetTrackerSerialNumbers setting) { TrackersList.Clear(); foreach (var d in list.OrderBy(d => d.Item1).ThenBy(d => d.Item2)) { var trackerinfo = new TrackerConfigWindow.TrackerInfo { TypeName = d.Item1, SerialNumber = d.Item2, Background = WhiteBrush }; TrackersList.Add(trackerinfo); } }
private void SetTrackersList(List <Tuple <string, string> > list, PipeCommands.SetTrackerSerialNumbers setting) { TrackersList.Clear(); list.Add(Tuple.Create("HMD", default(string))); list.Add(Tuple.Create("コントローラー", default(string))); list.Add(Tuple.Create("トラッカー", default(string))); list.Add(Tuple.Create("割り当てしない", default(string))); foreach (var d in list.OrderBy(d => d.Item1).ThenBy(d => d.Item2)) { var trackerinfo = new TrackerInfo { TypeName = d.Item1, SerialNumber = d.Item2, Background = WhiteBrush }; TrackersList.Add(trackerinfo); if (d.Item2 != null) { TrackersViewList.Add(trackerinfo); } } Func <Tuple <string, string>, TrackerInfo> getItem = (set) => { var item = TrackersList.Where(d => d.TypeName == set.Item1 && d.SerialNumber == set.Item2).FirstOrDefault(); if (item == null) { var newitem = new TrackerInfo { TypeName = set.Item1, SerialNumber = set.Item2, Background = WhiteBrush }; TrackersList.Add(newitem); item = newitem; } return(item); }; IsSetting = true; HeadTrackerComboBox.SelectedItem = getItem(setting.Head); LeftHandTrackerComboBox.SelectedItem = getItem(setting.LeftHand); RightHandTrackerComboBox.SelectedItem = getItem(setting.RightHand); PelvisTrackerComboBox.SelectedItem = getItem(setting.Pelvis); LeftFootTrackerComboBox.SelectedItem = getItem(setting.LeftFoot); RightFootTrackerComboBox.SelectedItem = getItem(setting.RightFoot); LeftElbowTrackerComboBox.SelectedItem = getItem(setting.LeftElbow); RightElbowTrackerComboBox.SelectedItem = getItem(setting.RightElbow); LeftKneeTrackerComboBox.SelectedItem = getItem(setting.LeftKnee); RightKneeTrackerComboBox.SelectedItem = getItem(setting.RightKnee); }