2009-08-27 27 views
8

पर क्लिक करें मैं हमेशा एक दृश्यमान लंबवत स्क्रॉलबार के साथ एक WPF ListView का उपयोग कर रहा हूं। मेरे पास ListView पर एक MouseLeftButtonUp ईवेंट हैंडलर है। हैंडलर सही तरीके से काम कर रहा है सिवाय इसके कि जब वर्टिकल स्क्रॉलबार क्लिक किया जाता है तो उसके पास कुछ भी नहीं है यानी ListView बॉक्स में स्क्रॉल करने के लिए पर्याप्त आइटम नहीं हैं।WPF स्टॉप ListView स्क्रॉलबार फायरिंग

उस स्थिति में कुछ भी नहीं होना चाहिए क्योंकि उपयोगकर्ता ने लंबवत स्क्रॉलबार पर क्लिक किया है ताकि यह सुनिश्चित किया जा सके कि स्क्रीन से बस कोई आइटम न हो। हालांकि ListView MouseLeftButtonUp ईवेंट को निकाल देता है। यदि वर्टिकल स्क्रॉलबार में कुछ काम करने के लिए कुछ काम किया जाता है तो उसे निकाल दिया नहीं जाता है।

यहाँ मेरी simplifiewd XAML है

<ListView MouseLeftButtonUp="DoSomething_MouseLeftButtonUp" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Visible"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Width="170" Header="Venue" DisplayMemberBinding="{Binding Path=Venue}" /> 
    </GridView> 
    </ListView.View> 
</ListView> 

वहाँ वैसे भी जब ऊर्ध्वाधर स्क्रॉल पट्टी है कि क्या स्क्रॉल पट्टी करते हैं या नहीं करने के लिए किसी भी काम किया है की irespective क्लिक किया जाता है फायरिंग MouseLeftButtonUp घटना को रोकने के लिए है?

उत्तर

4

यह this question के समान है, और उत्तर वही है। अपने MouseLeftButtonUp हैंडलर में, MouseButtonEventArgs.OriginalSource संपत्ति देखें। यह आपको बताएगा कि क्लिक कहां से उत्पन्न हुआ था।

if (e.OriginalSource is TextBlock || e.OriginalSource is Border) 
{ 
    // do your stuff 
} 
+0

अपने स्वयं के ग्रिड व्यू में, मेरे पास कई स्तंभ हैं जिनमें छवि, टेक्स्टब्लॉक, टेक्स्टब्लॉक रन के साथ हैं ... क्या मुझे उन सभी की जांच करनी है? –

2

ListBox के लिए मैं निम्नलिखित कोड का उपयोग किया है। हालांकि:

var item = ItemsControl.ContainerFromElement(sender as ItemsControl, (DependencyObject)e.OriginalSource) as ListBoxItem; 
if (item != null) 
{ 
    // Handle it 
} 
5

अन्य उत्तर में से कोई ListBoxItem में जटिल स्टाइल की वजह से मेरे मामले में काम किया:

+0

यह काम करता है। धन्यवाद। – SteveP

+0

यह मेरे लिए भी काम करता है। अन्य उत्तर सूची बॉक्स में अन्य नियंत्रणों के कारण काम नहीं करेंगे। धन्यवाद – superstar

संबंधित मुद्दे