Wpf 依赖属性:';冻结';直到用户提交数据绑定
我正在尝试实现一个系统来增强WPF的数据绑定引擎 我现在最关心的是: 我希望能够“冻结”DependencyProperty-阻止它从模型更新-一旦用户开始在UI中输入内容 考虑以下示例: 我正在将TextBox.TextProperty绑定到ViewModel上的某个属性 用户开始在文本框内输入,在他开始输入时,我想阻止ViewModel更新视图 只有在提交更改后,用户才能在模型中看到更新 我正在尝试使用一个bool标志创建某种多绑定,它将告诉我是否需要更新GUI,但除此之外,我不知道如何继续Wpf 依赖属性:';冻结';直到用户提交数据绑定,wpf,xaml,data-binding,dependency-properties,Wpf,Xaml,Data Binding,Dependency Properties,我正在尝试实现一个系统来增强WPF的数据绑定引擎 我现在最关心的是: 我希望能够“冻结”DependencyProperty-阻止它从模型更新-一旦用户开始在UI中输入内容 考虑以下示例: 我正在将TextBox.TextProperty绑定到ViewModel上的某个属性 用户开始在文本框内输入,在他开始输入时,我想阻止ViewModel更新视图 只有在提交更改后,用户才能在模型中看到更新 我正在尝试使用一个bool标志创建某种多绑定,它将告诉我是否需要更新GUI,但除此之外,我不知道如何继续
任何帮助都将不胜感激 您可以通过在绑定中将UpdateSourceTrigger设置为PropertyChanged,然后在bounded属性的setter中相应地设置标志来实现。值立即更新绑定源,因为用户将输入任何字符 xaml
我是不是遗漏了什么?我似乎找不到国旗的用法(我们只设置了它,没有阅读它)谢谢!
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/>
public class ViewModel:INotifyPropertyChanged
{
bool stopUpdate;
string name;
public string Name
{
get
{ return name;}
set
{
name = value;
stopUpdate=true;
OnPropertyChanged("Name");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}