1

我创建了一个WinRt应用程序,该应用程序在其页面中具有用户控件,而且我正在使用MVVM和Caliburn Micro。在用户控件中,我有一个依赖项属性,我绑定到我的视图模型中的一个集合,但绑定不起作用,至少直到我更改模拟器的重新解析为止。我进入调试模式,并且用户控件的数据上下文为空,但是当我更改rezolution并在“SizeChanged”事件中打断点时,我可以看到我的用户控件已正确绑定。现在我不知道是什么造成了这种延迟,因为它应该在页面加载的时候绑定,但事实并非如此。 的代码是这样的:Caliburn Micro和依赖项属性绑定不起作用

MyPage.xaml

<MyControl Users="{Binding MyUsersCollection, Mode=TwoWay}"></MyControl> 

MyControl.xaml.cs

public ObservableCollection<User> Users 
    { 
     get { return (ObservableCollection<User>)GetValue(UsersProperty); } 
     set 
     { 
      SetValue(UsersProperty, value); 
      LoadInfo(); 
     } 
    } 

    public static readonly DependencyProperty UsersProperty = 
     DependencyProperty.Register("Users", typeof(ObservableCollection<User>), typeof(MojoMap), new PropertyMetadata(new ObservableCollection<User>())); 

你能不能帮我找出这里有什么问题吗?谢谢!

回答

0

你能试试这个:

public ObservableCollection<User> Users 
{ 
    get { return (ObservableCollection<User>)GetValue(UsersProperty); } 
    set 
    { 
     SetValue(UsersProperty, value); 
    } 
} 
public static readonly DependencyProperty UsersProperty = 
    DependencyProperty.Register("Users", typeof(ObservableCollection<User>), typeof(MojoMap), new PropertyMetadata(null, UsersChanged)); 

private static void UsersChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) 
{ 
    ((MojoMap) dependencyObject).LoadInfo(); 
}