2013-10-07 74 views
1

我遇到了一些問題,將文本框綁定到我的視圖中的屬性。 該綁定工作完美,直到我試圖刪除最後一個字符。 光標向後移動,但最後一個字符仍然存在於文本框中以及它所綁定的屬性中。刪除文本框綁定的最後一個字符

<TextBox Grid.Column="0" Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 

而且歡迎使用屬性本身

public string SearchText 
    { 
     get { return _searchText; } 
     set 
     { 
      if (searchText != value) 
      { 
       if (value != "") 
       { 
        Debug.WriteLine("Typed Value " + value); 
        searchText = value; 
       } 

      } 
     } 
    } 

此輸出到:「類型值F」如果我嘗試從文本完全抹去富。在退格鍵的最後一次按下時,光標會移回,但不會移除該字符。

我怎麼能解決這個問題?

回答

0

您的條件語句阻止設置新值。

if (value != "") //if value is NOT an empty string 
{ 
    Debug.WriteLine("Typed Value " + value); 
    searchText = value; 
} 

因此,當它是一個空字符串(即最後一個字符刪除),你不叫searchText = value因此不設置新的價值。我看不出有這樣的檢查代碼的原因,因此您可以將其刪除,或者確保您始終在該塊之外設置value

+0

嘿,在這裏進行代碼盲。感謝您讓我回到現實。 – Giffesnaffen

+0

不客氣:) – keyboardP

0

從文本框中刪除所有內容意味着將文本設置爲string.Empty或「」。

現在你不要讓屬性被設置爲空,因此你的最後一個字符總是停留在TextBox中。

剛剛得到的,如果坐(價值!= 「」)在你的代碼

0

再看看

if (value != "") 
{ 
    Debug.WriteLine("Typed Value " + value); 
    searchText = value; 
} 

如果value == 「」 SEARCHTEXT未分配」

if (value != "") 
{ 
    Debug.WriteLine("Typed Value " + value);  
} 
searchText = value; 
+0

你不應該刪除真正的部分。我喜歡 :) –

相關問題