【发布时间】:2011-06-24 02:33:06
【问题描述】:
我正在使用 Prism v4 和 MVVM。 在我的视图模型中,我有:
private TB_COMPANY tb;
public TB_COMPANY Tb {
get {
return this.tb;
}
private set {
if ( this.tb != value ) {
this.tb = value;
this.RaisePropertyChanged(() => this.Tb);
}
}
}
在我的页面中,我有一个数据网格(我也尝试使用列表视图,不工作!):
<DataGrid ItemsSource="{Binding Tb.TB_ADDRESS.RL_ADDRESS_PHONE}" .../>
RL_ADDRESS_PHONE 是公司电话列表... 所以,在某个时刻,我将手机添加到列表中:
private void MyCommand()
{
...
Tb.TB_ADDRESS.RL_ADDRESS_PHONE.Add(
new RL_ADDRESS_PHONE
{
TB_PHONE = new TB_PHONE
{
NU_PHONE = _txtTelefone,
ST_TYPE = _txtTipoTelefone
}
});
...
}
但是 UI 没有任何反应... 但在调试中,列表已满...... 我应该怎么做才能更新 UI?
【问题讨论】:
-
天哪...我希望你无法控制 OVER_YOUR_MODEL_CLASS_AND_PROPERTY_NAMES。无论谁这样做,都给他们一份《框架指南》的副本。
-
我不明白?什么意思?
-
@Renalf:我们需要查看您的 RL_ADDRESS_PHONE 属性的定义以及您的 RaisePropertyChanged 方法的内容。另外,Will 的意思是 ALL_CAPS_PROPERTIES 通常被认为会降低代码的可读性。 Microsoft 发布了一个框架开发指南文档,其中包含他们的最佳实践,这就是其中提到的。
-
感谢您的解释......我已经做了一个解决方法......现在它可以工作了
-
@Renanlf:你的意思是你解决了你上面描述的问题?如果是这样,您是否介意发布您修复的内容以使其他人受益?
标签: wpf listview mvvm datagrid prism