【发布时间】:2015-09-19 07:59:21
【问题描述】:
我正在开发一个使用 Silverlight 5 编写的遗留应用程序,该应用程序包含许多反模式和不良做法。我负责使用 SingalR 添加实时交互(例如通知)。
顺便说一句,他们使用these WCF RIA 服务与身份验证进行交互。
他们有一个主页,这个页面是我获取用户通知并向登录用户显示它们的地方:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
//...
}
}
所以你可以看到,只要用户登录,我就没有设置 DataContext 属性,我需要在用户登录到应用程序后设置 MainPage 的 DataContext,所以我必须在 LoginOperation_Completed 里面的 @987654325 中这样做@页面:
public partial class LoginForm : StackPanel
{
private LoginRegistrationWindow parentWindow;
private LoginInfo loginInfo = new LoginInfo();
public LoginForm()
{
InitializeComponent();
//...
}
private void LoginOperation_Completed(LoginOperation loginOperation)
{
if (loginOperation.LoginSuccess)
{
// Here I need to access MainPages's DataContext property and set it with my ViewModel
}
}
}
现在我的问题是,如何在另一个类中设置 MainPage 的 DataContext 属性(在本例中为 LoginFrom)?
我还尝试为我的 MainPage 用户控件提供一个 ID 并像这样访问它:
mainPage.DataContext = new NotificationItemViewModel();
但是编译器给了我这个错误:
当前上下文中不存在名称“mainPage”
【问题讨论】:
-
请添加您的 XAML
-
Here's MainPage 的 XAML。
标签: c# silverlight