2013-01-22 89 views
1

我正在使用Lync SDK並使用ContactSearchResultList(listBox)與SelectionMode="Single"ListBox拋出SelectedItems錯誤點擊右鍵

但是,當我右鍵單擊不與下面的堆棧跟蹤選定的應用程序崩潰一個項目:

System.InvalidOperationException wurde nicht behandelt. 
    HResult=-2146233079 
    Message=Can only change SelectedItems collection in multiple selection modes. Use SelectedItem in single select modes. 
    Source=PresentationFramework 
    StackTrace: 
     bei System.Windows.Controls.Primitives.Selector.OnSelectedItemsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) 
     bei System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e) 
     bei System.Collections.ObjectModel.ObservableCollection`1.ClearItems() 
     bei System.Windows.Controls.SelectedItemCollection.ClearItems() 
     bei System.Collections.ObjectModel.Collection`1.Clear() 
     bei Microsoft.Lync.Controls.UCListBoxItem.OnMouseRightButtonDown(MouseButtonEventArgs e) 
     bei System.Windows.UIElement.OnMouseRightButtonDownThunk(Object sender, MouseButtonEventArgs e) 
     bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 
     bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
     bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 
     bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
     bei System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) 
     bei System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e) 
     bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 
     bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
     bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 
     bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
     bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 
     bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) 
     bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) 
     bei System.Windows.Input.InputManager.ProcessStagingArea() 
     bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) 
     bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) 
     bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) 
     bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
     bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
     bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
     bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 
     bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 
     bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 
     bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) 
     bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) 
     bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) 
     bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) 
     bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) 
     bei System.Windows.Threading.Dispatcher.Run() 
     bei System.Windows.Application.RunDispatcher(Object ignore) 
     bei System.Windows.Application.RunInternal(Window window) 
     bei System.Windows.Application.Run(Window window) 
     bei System.Windows.Application.Run() 
     bei LyncPresenceBrowser.App.Main() in D:\_effexx\_Kunden\DFG\LyncPresenceBrowser\obj\x86\Debug\App.g.cs:Zeile 0. 
     bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
     bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
     bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
     bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
     bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     bei System.Threading.ThreadHelper.ThreadStart() 
    InnerException: 

爲什麼拋出這個錯誤?在我的代碼中,我沒有任何意見,我在SelectedItems,我總是使用SelectedItem。林卡住,請幫我:)

//繼承人的事件:

public void contactSearchResultList1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (contactSearchResultList1.SelectedItem != null && contactSearchResultList1.SelectedIndex != -1) 
    { 
     expander1.IsEnabled = true; 
     expander2.IsEnabled = true; 
     expander1.IsExpanded = true; 
     showGroupMembersWindow(); 
    } 
    else 
    { 
     expander1.IsEnabled = false; 
     expander2.IsEnabled = false; 
     //closeGroupMembersWindow(); 
     //closeContactCardWindow(); 
    } 
} 
+0

我找不到任何屬性設置爲「多選」。我不知道應用程序代碼的哪一部分要顯示,因爲根據堆棧跟蹤,似乎某些默認行爲是拋出異常。我在我的程序中涉及到'SelectedItem'等所有部分的評論,但錯誤仍然出現... – MartiniMoe

+1

OnMouse Click Event ..?你可以顯示該代碼..? – MethodMan

+0

我不知道...我只是使用SelectionChanged事件。我將代碼添加到問題中。 – MartiniMoe

回答

0

這似乎是爲SelectionModecontactSearchResultList的默認值是Extended。我改變了這個價值,現在一切似乎都奏效了...... 感謝您的幫助!