コード例 #1
0
        internal void InvokeSelectedProfile(int selectedLineId)
        {
            if (_profileSession.Segments == null)
            {
                return;
            }

            var oldSelectedLine = _profileSession.Segments.Find(segment => segment.IsSelected == true);

            if (selectedLineId == -1)
            {
                SelectedProfileChanged?.Invoke(oldSelectedLine, null, _profileSession.SessionId);
            }
            else
            {
                var newSelectedLine = _profileSession.Segments.First(segment => segment.LineId == selectedLineId);

                if (oldSelectedLine == newSelectedLine)
                {
                    oldSelectedLine = null;
                }

                SelectedProfileChanged?.Invoke(oldSelectedLine, newSelectedLine, _profileSession.SessionId);
                newSelectedLine.IsSelected = true;
            }

            if (oldSelectedLine != null)
            {
                oldSelectedLine.IsSelected = false;
            }
        }
コード例 #2
0
 private void cbxProfile_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (e.AddedItems.Count == 1)
     {
         SelectedProfileChanged?.Invoke(((ProfileData)e.AddedItems[0]).Id);
     }
 }
コード例 #3
0
 public int GetRegisteredSelectedProfileChangedListener()
 {
     return(SelectedProfileChanged != null?SelectedProfileChanged.GetInvocationList().Length : 0);
 }
コード例 #4
0
 internal void InvokeSelectedProfileChanged(GroupedLines oldSelectedLines, GroupedLines newSelectedLines, int profileId)
 {
     SelectedProfileChanged?.Invoke(oldSelectedLines, newSelectedLines, profileId);
 }
コード例 #5
0
 /// <summary>
 /// Raises a SelectedProfileChanged event.
 /// </summary>
 private void OnSelectedProfileChanged()
 {
     SelectedProfileChanged?.Invoke(this, EventArgs.Empty);
 }