以下是我需要的简化示例:
我有A类,有一个属性Name。 Name属性是异步更改的,无法知道修改何时发生
为了在视图中显示它的更新值,我在其中连接了propertychanged
事件并将其与{Binding A.Name}
绑定。在VM中,它工作正常
但在我的情况下,有很多自定义属性不应该在A类中。我在A类中提出propertychanged
时会想到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}" />
答案 0 :(得分:2)
尝试将“RaisePropertyChanged”添加到Name对象:
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); RaisePropertyChanged();}
}
然后在Xaml上包含更新触发器:
<TextBox Text="{Binding Name}" UpdateSourceTrigger=PropertyChanged />
答案 1 :(得分:1)
例如,A类必须有一个经典的C#事件,因此AViewModel可以订阅它。