1

ページにユーザー コントロールがある WinRt アプリを作成しており、Caliburn Micro で MVVM を使用しています。ユーザーコントロールには、ビューモデルのコレクションにバインドしている依存関係プロパティがありますが、少なくともシミュレーターの解像度を変更するまで、バインドは機能しません。デバッグ モードに入ると、ユーザー コントロールのデータ コンテキストは null ですが、解像度を変更して "SizeChanged" イベントでブレークポイントに到達すると、ユーザー コントロールが適切にバインドされていることがわかります。ページが読み込まれた瞬間にバインドする必要があるため、この遅延の原因はわかりませんが、そうではありません。コードは次のようなものです。

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>()));

ここで何が問題なのかを理解するのを手伝ってもらえますか? ありがとうございました!

4

1 に答える 1

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();
}
于 2013-03-21T15:15:45.567 に答える