检测何时发生 OnPropertyChanged
Detect when a OnPropertyChanged occurs
这是我需要的一个简化示例:
我有 class 个名字为 属性 的 A。名称 属性 是异步更改的,无法知道修改何时发生。
为了在视图中显示它的更新值,我在其中连接了一个 propertychanged
事件并将其与 {Binding A.Name}
绑定。在 VM 中它工作正常。
但就我而言,有很多自定义属性不应该出现在 class A 中。我在想一旦 propertychanged
在 class A 中出现,Name
AViewModel
中的 属性 应该得到通知并提高 OnPropertyChanged
有什么办法吗?
C#:
public class A : BaseViewModel
{
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); }
}
}
public class AViewModel : BaseViewModel
{
A a;
public A A
{
get { return a; }
set { Set(()=> A, ref a, value); }
}
public string Name
{
get { return A.Name; }
set { Set(()=> Name, ref A.Name, value); }
}
}
XAML :
<TextBox Text="{Binding Name}" />
例如,class A 必须有一个 classic C# 事件,这样 AViewModel 才能订阅它。
尝试将 "RaisePropertyChanged" 添加到名称对象:
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); RaisePropertyChanged();}
}
然后在 Xaml 上包含更新触发器:
<TextBox Text="{Binding Name}" UpdateSourceTrigger=PropertyChanged />
这是我需要的一个简化示例:
我有 class 个名字为 属性 的 A。名称 属性 是异步更改的,无法知道修改何时发生。
为了在视图中显示它的更新值,我在其中连接了一个 propertychanged
事件并将其与 {Binding A.Name}
绑定。在 VM 中它工作正常。
但就我而言,有很多自定义属性不应该出现在 class A 中。我在想一旦 propertychanged
在 class A 中出现,Name
AViewModel
中的 属性 应该得到通知并提高 OnPropertyChanged
有什么办法吗?
C#:
public class A : BaseViewModel
{
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); }
}
}
public class AViewModel : BaseViewModel
{
A a;
public A A
{
get { return a; }
set { Set(()=> A, ref a, value); }
}
public string Name
{
get { return A.Name; }
set { Set(()=> Name, ref A.Name, value); }
}
}
XAML :
<TextBox Text="{Binding Name}" />
例如,class A 必须有一个 classic C# 事件,这样 AViewModel 才能订阅它。
尝试将 "RaisePropertyChanged" 添加到名称对象:
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); RaisePropertyChanged();}
}
然后在 Xaml 上包含更新触发器:
<TextBox Text="{Binding Name}" UpdateSourceTrigger=PropertyChanged />