2014-10-30 80 views
0

我有一個ListView與幾個項目,所以每當我選擇一個特定的項目,將發生相應的事件。此外,我還希望創建一些事件,當用戶單擊以清空ListView內的空間(沒有項目時)。但是,我試圖爲ListView創建MouseClick和SelectionChanged,但仍無法檢測到鼠標單擊外部項目。如何檢測鼠標單擊外部列表視圖項目?

+0

WPF或形式?使用標籤。 – 2014-10-30 04:23:14

+0

爲什麼你需要檢測項目外的鼠標點擊?你上面說過,當你點擊一個ListViewItem時,你想要一個事件觸發,對吧? – furkle 2014-10-30 04:37:10

+0

@furkle,因爲我想當用戶點擊列表視圖外,我重置了一些標誌。 – Bent 2014-10-30 04:55:15

回答

0

這可能是你的設計範圍以外的一些工作,但是這是什麼樣的東西,會是一個很容易做到在MVVM設計中。與其不必擔心用戶是否單擊某個項目或ListView中的任何其他非項目空間,您可以只使用OneWayToSource或TwoWay將屬性綁定到ListView的SelectedItem。然後,只要設置了該值,就可以在屬性的setter字段中執行任何您想要的代碼。

在您的XAML:

<ListView SelectedItem="{Binding YourSelectedItem Mode=OneWayToSource}"></ListView> 

然後在視圖模型作爲DataContext的爲您的ListView:

private object yourSelectedItem = new object(); 
public object YourSelectedItem 
{ 
    get { return yourSelectedItem; } 
    set 
    { 
     yourSelectedItem = value; 
     CorrespondingEvent(); 
    } 
} 
0

您可以捕獲MouseDown事件 - 它會爲外部空間