1

Я создаю приложение WinRt, которое имеет пользовательские элементы управления на своих страницах, и я использую MVVM с Caliburn Micro. В пользовательском элементе управления у меня есть свойство зависимости, которое я привязываю к коллекции в моей модели представления, но привязка не работает, по крайней мере, до тех пор, пока я не изменю настройку симулятора. Я перешел в режим отладки, а контекст данных пользовательского элемента управления был нулевым, но когда я изменяю результирование и ударяю точку останова в событии «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(); 
} 
Смежные вопросы