2011-04-13 35 views
0

我有這樣一個文本框:WPF拖放二傳手調用源

<TextBox x:Name="txtCondition" Text="{Binding Path=Name ,Mode=TwoWay}"/> 

當我選擇在這個文本框中的文本,並將其拖到這個文本框的綁定屬性的地方設置器自動調用,但我不明白爲什麼:(。

是否有可能將其關閉不知何故,該WPF不調用setter屬性在這種情況下?提前

感謝您的幫助!

問候, 佐利

編輯:

我們要在這裏做一些黑客:)。

我們在viewModel中創建了一個bool變量。在previewDrop事件中將bool變量設置爲true,並在調用setter時調用此bool變量值。如果這是真的,那麼在setter中不做任何事情,並將bool變量設置爲false。

其他方式,你可以檢查堆棧跟蹤找出此setter調用:)

不過我很好奇,爲什麼WPF調用源綁定的setter方法,當我們從放置項目它,所以如果有人知道這個理由請通知我們:)。

回答

0

TextBoxes的默認綁定行爲是在焦點丟失時進行更​​新,因此當您拖動它時會觸發。您可以將綁定的UpdateSourceTrigger更改爲Explicit以避免自動更新,但當然您需要在某個時候手動觸發更新。

+0

它不會與明確的工作:(。setter調用時,我釋放鼠標按鈕與拖動文字。 – 2011-04-13 12:03:36

+0

有多奇怪,我會看看如果我可以重現此... – 2011-04-13 12:04:50

+0

無論如何,下降後,焦點已經在上一個文本框的拖動文本中 – 2011-04-13 12:05:25