【发布时间】:2011-01-18 11:11:59
【问题描述】:
我有一个silverlight ChildWindow。当我点击一个链接时,它会打开这个子窗口并显示我的 ViewModel 中的一些数据。问题是当 ViewModel 中的数据更新时,这并没有更新。
来自弹出窗口的示例:
<TextBox Text="{Binding Path=AgentExceptionDetail.Action, Mode=TwoWay}" />
视图模型:
private AgentExceptionDetail _agentExceptionDetail;
public AgentExceptionDetail AgentExceptionDetail
{
get { return _agentExceptionDetail; }
set
{
if (value != _agentExceptionDetail)
{
RaisePropertyChanged("AgentExceptionDetail");
_agentExceptionDetail = value;
}
}
}
此 AgentExceptionDetail 对象是通过调用 RIA-Services 填充的。此调用成功,数据恢复正常。 Binding 实际上的行为类似于 Mode=OneTime 而不是 OneWay,因为当我关闭并重新打开弹出窗口时会显示数据,但第一次打开弹出窗口时 AgentExceptionDetail=null 会在调用返回时填充。
这是否与我在绑定实际上正在寻找“AgentExceptionDetail.Action”时为“AgentExceptionDetail”引发属性更改事件有关?如果是这样,有没有办法解决这个问题?
【问题讨论】:
-
我们需要更多细节,你更新了什么? AgentExceptionDetail 或其 Action 属性。 Action 属性是什么样的? ...从概念上讲,您正在做的事情看起来是正确的!
标签: silverlight xaml data-binding silverlight-4.0 viewmodel