2012-10-12 72 views
1

我有一個由mouseUp事件觸發的函數。一切工作正常,除了有時沒有檢測到mouseUp事件。 事實上,我有一個列表視圖,項目,當我選擇一個項目,它會觸發一個函數。但不總是。MouseUp事件並不總是觸發

<ListView Margin="4" Grid.Row="1" Grid.ColumnSpan="2" x:Name="statinfoListview" 
    ItemsSource="{Binding Path=ExistingStateInfos, ElementName=Window}" 
    SelectedItem="{Binding Path=SelectedStateInfo, ElementName=Window}"> 
    <ListView.ItemTemplate> 
     <DataTemplate DataType="{x:Type States:StateInfo}"> 
      <TextBlock Text="{Binding Path=Name}" MouseUp="ApplyStateInfoNameToState_Click" /> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+1

也許你在釋放按鈕之前將鼠標拉出文本塊?另外請注意,如果您位於文本的右側,則可能不會單擊文本塊,它可能有助於將「Horizo​​ntalContentAlignment =」Stretch「」添加到ListView。 –

+0

是的,沒錯。非常感謝:) – Sheamus

+0

如果解決了這個問題,我會繼續並添加一個答案。 –

回答

1

也許你在釋放按鈕之前將鼠標從文本塊中拉出來?另外請注意,如果您位於文本右側,您可能不會單擊文本塊,但可能有助於將Horizo​​ntalContentAlignment =「Stretch」添加到ListView。

0

由於VisualTree中的後代visual可以處理事件,因此您無法保證MouseUp處理程序將被調用。如果你想確保捕捉事件,你應該使用隧道事件(PreviewMouseUp)。

另一種方法是在後面的代碼中使用AddHandler方法,並指定要管理處理的事件。

+0

感謝您的建議Sisyphe。我剛剛嘗試了KDiTraglia的方式,並且暫時適用。如果測試沒有結束,我會使用你的解決方案。 – Sheamus

相關問題