Wpf TextBox数据绑定更新
本文关键字:更新 数据绑定 TextBox Wpf | 更新日期: 2023-09-27 18:01:04
我有一个TextBox,它绑定到一个字符串属性:
文本框:
<TextBox x:Name="SearchBox"
Text="{Binding SearchText, Source={StaticResource SearchEngine}, Mode=TwoWay}"
</TextBox>
以及绑定到的类:
public class SearchEngine : ViewModelBase
{
private string _searchText = string.Empty;
public SearchEngine() {
Console.Out.WriteLine("this = {0}", this);
SearchText = "Search";
}
public string SearchText
{
get { return _searchText; }
set
{
if (_searchText != value)
{
_searchText = value;
Console.Out.WriteLine("AAAAAAAAAAAA: " + value);
NotifyPropertyChanged();
}
}
}
}
问题是,当我在TextBox中键入时,SearchText
不会得到更新。
您必须在xaml中使用updatesourcetrigger,比如:
<TextBox x:Name="SearchBox" Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged"/>
执行以下操作:
<TextBox x:Name="SearchBox" Text="{Binding SearchText, Mode=TwoWay}" />
并且在您的代码后台将DataContext属性分配给您的实例,即
SearchEngine searchEngine = new SearchEngine();
SearchBox.DataContext = searchEngine;
请参见此处。