簡體   English   中英

刪除文本框綁定的最后一個字符

[英]Removing last character of textbox binding

我在將文本框綁定到視圖中的屬性時遇到了一些問題。 綁定工作完美,直到我嘗試刪除最后一個字符。 光標向后移動,但最后一個字符仍在文本框中,並且在其綁定的屬性中。

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

而Propety本身

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

            }
        }
    }

如果我嘗試從文本框中完全擦除Foo,則輸出為:“ Typed Value F”。 在最后一次按Backspace鍵時,光標會向后移動,但不會刪除字符。

我該如何解決?

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

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

因此,當它是一個空字符串(即刪除了最后一個字符)時,您不會調用searchText = value因此不會設置新值。 我看不出在您顯示的代碼中進行檢查的原因,因此您可以刪除它或確保始終在該塊之外設置該value

從TextBox中刪除所有內容意味着將Text設置為string.Empty或“”。

現在,您不要將屬性設置為空,因此您的最后一個字符始終停留在TextBox中。

只要乘上if(值!=“”)

再看看你的代碼

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

如果值==“”未分配searchText'

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM