簡體   English   中英

C#WPF - 如何始終從文本框中獲取當前文本?

[英]C# WPF - How to always get the current text from a textbox?

我在FileWindow.xaml中有一個TextBox:

<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="233,230,0,0" TextWrapping="Wrap" Text="{Binding FileName}" VerticalAlignment="Top" Width="120"/>

在ViewModel.cs中:

public String FileName
{
    get { return _model.filename; }
    set
    {
        if (value != _model.filename)
        {
            _model.filename = value;
            OnPropertyChanged();
        }
    }
}

在Model.cs中:

private String _filename = "example.txt";
public String filename { get { return _filename; } set { _filename = value; } }

我希望每次輸入TextBox時,Model.cs中的_filename都會更新。
TextBox中的默認文本是example.txt,但如果我更改它,Model.cs中的_filename不會更改。 我究竟做錯了什么?

嘗試將綁定的UpdateSourceTrigger屬性設置為PropertyChanged

Text="{Binding FileName, UpdateSourceTrigger=PropertyChanged}" 

TextBox沒有立即發送回源。 相反,只有在TextBox上丟失焦點后才更新源。 此行為由名為UpdateSourceTrigger的綁定上的屬性控制。

它默認為“Default”值,這基本上意味着根據綁定的屬性更新源。

顯然,默認值是UpdateSourceTrigger的默認值。 其他選項是PropertyChangedLostFocusExplicit

 <TextBox Text="{Binding FileName, UpdateSourceTrigger=PropertyChanged}" />

暫無
暫無

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

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