Wpf 当我有两个UI控件绑定到同一个属性时,如何只更新我想要的UI?

Wpf 当我有两个UI控件绑定到同一个属性时,如何只更新我想要的UI?,wpf,binding,inotifypropertychanged,Wpf,Binding,Inotifypropertychanged,对于exmaple,我有2个文本块UI 下面的当前代码是两个窗口都将获得名称 每当调用INotifyPropertyChanged时 例如,我的窗口2将更新名称,但 我不想在调用INotifyPropertyChanged时更新窗口1 窗口1 <TextBlock Text="{binding Name}"/> 不能仅在特定时间阻止用户界面控件被INotifyPropertyChanged界面更新。但是,您可以简单地添加另一个属性绑定到窗口1,并从原始属性中获取该属性的值。然后可以

对于exmaple,我有2个文本块UI

下面的当前代码是两个窗口都将获得名称 每当调用INotifyPropertyChanged时

例如,我的窗口2将更新名称,但 我不想在调用INotifyPropertyChanged时更新窗口1

窗口1

<TextBlock Text="{binding Name}"/>

不能仅在特定时间阻止用户界面控件被
INotifyPropertyChanged
界面更新。但是,您可以简单地添加另一个属性绑定到
窗口
1,并从原始属性中获取该属性的值。然后可以添加一个
bool
属性,该属性启用或禁用新属性的更新。试着这样做:

public string SecondNameProperty
{
    get 
    {
        if (CanUpdate) secondNameProperty = Name;
        return secondNameProperty;
    }
}

当您想更新
SecondNameProperty
属性时,只需确保
CanUpdate
属性设置为
true
,当您不想更新时,将其设置为
false

将绑定模式的一次性设置添加到您不想更新的模式

{Binding Name, Mode=OneTime}

如果您不想更新它,那么首先不要绑定到属性。只需从代码隐藏手动设置值。嗨,John Bowen,谢谢你的回答。好的,这是一个好主意,但如果我使用InotifyPropertyChangedI,则它不起作用。如果您在使用它时看到值更改,这意味着您正在重新加载控件本身,这与此属性的更改通知无关。嗨,Sheridan,谢谢您的回答。你的想法很好,但我希望我能尽量减少代码。我多么希望我在窗口中定义的UI控件的名称能够在视图模型中得到它。我不确定这在MVVM中是否可能,尽管.WPF很冗长。。。它需要编写大量的代码。你最好接受这个事实,继续前进。
public string SecondNameProperty
{
    get 
    {
        if (CanUpdate) secondNameProperty = Name;
        return secondNameProperty;
    }
}
{Binding Name, Mode=OneTime}