在Silverlight ViewModel上实现属性

时间:2009-07-14 21:43:15

标签: silverlight-2.0

我有一个Silverlight ModelViewViewModel项目,我希望将视图模型上的属性公开给UserControl,如:

public DTO.Client Client
{
    get { return client; }
}

客户端是我在异步完成事件处理程序中设置的私有后备变量:

    void GetClientByIDComplete(object sender, GetClientByIDCompletedEventArgs e)
    {
        Application.Current.RootVisual.Dispatcher.BeginInvoke(() =>
        {
            DTO.Client c = new ServiceContract.DTO.Client();
            c = e.Result as DTO.Client;
            client = e.Result as DTO.Client;
        });
    }

在我的Silverlight页面中,我有以下内容:                        

<TextBlock Text="{Binding Client.Name}"/>

永远不会显示数据。如果我将属性更改为:

,则会显示数据
public DTO.Client Client
{
    get { 
          client.Name = "My Name";
          return client; }
}

这样我明确地赋值。

我需要更改什么才能让我的页面看到该属性?

1 个答案:

答案 0 :(得分:0)

您是在填充客户端之后还是之前设置数据上下文?

在确定显示之前,它不知道基础数据在没有添加额外代码的情况下已经改变,实现INotifyPropertyChanged以便绑定可以理解数据已经改变。