2011-08-04 48 views
1

我有一個列表框與朋友列表綁定到類Buddy {String name;字符串消息}如何將ListBoxItem轉換爲綁定到列表的類?

當用戶點擊一個項目我通過處理PreviewMouseDown事件獲得點擊的項目:

var item = ItemsControl.ContainerFromElement(lb, e.OriginalSource as DependencyObject) as ListBoxItem; 

的問題是,我不能轉換項目爲好友項:如果我試圖用

Buddy b=(Buddy)item 

我得到這樣的類型ListBoxItem中不能轉換爲好友

我怎樣才能使一個投給好友類錯誤? 在此先感謝 c。

回答

4

應該是實際...

Buddy b = (Buddy)item.DataContext; 

這是否幫助?

+0

太棒了!這是解決方案! – Cris

1

這是訪問項目(並使用WPF)的錯誤方法。您應該處理SelectionChanged事件,然後將SelectedItem轉換爲Buddy類型。這是選擇中涉及的對象。

+0

我已經使用了SelectionChanged,問題是我需要處理點擊該項目,即使它已被選中。 – Cris

+0

好的,當PreviewMouseDown被觸發時,在處理程序上執行與SelectionChanged相同的操作。 SelectedItem仍然會給出實際的項目。 –

2

ListBox項目上的DataContext屬性將是項目綁定到的夥伴。改用它。

Buddy b=(Buddy)(item.DataContext);