さてさて、これはこの質問に幾分関連している:WPF Printing multiple pages from a single View ModelMVVM +ユーザーコントロール+依存プロパティ
私はそこに与えられたアドバイスに従うことを試みたが、今私はこだわっています。
私のアプリケーションはMainView.xamlと適切なMainViewViewModel.csを使用しています。私はバックグラウンドでMVVM Lightを使用しています。今
- ポストによると - 私が次のことを行う必要がありそうです:
- ビューモデルは、これらを示していることを確認し、ユーザーコントロール
- からいくつかのプロパティを公開
- ユーザーコントロールを作成します。プロパティ
アイデアははっきりしていますが、お互いに通知しようとすると固まってしまいます。
public string SpecialText
{
get { return (string)GetValue(SpecialTextProperty); }
set
{
SetValue(SpecialTextProperty, value);
}
}
// Using a DependencyProperty as the backing store for SpecialText. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SpecialTextProperty =
DependencyProperty.Register("SpecialText", typeof(string), typeof(UcTest), new PropertyMetadata(new PropertyChangedCallback(SpecialTextChangedPropertyCallback)));
private static void SpecialTextChangedPropertyCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
// Do something
Debug.WriteLine("Ffgdgf");
}
さてさて、私は今、いくつかの依存関係プロパティを持つユーザーコントロールを持っています:
マイユーザーコントロール(UcTest.xaml)は、依存関係プロパティを公開します。しかし、これらのプロパティはViewModelのプロパティ(表示されるもの)と完全に分離されています。
だから、基本的に私は2つの可能性ている:どのように私は今、いくつかのプロパティが変更されたことをユーザーコントロールのための私のViewModelを
- を伝えることができますか?
- 依存関係のプロパティを忘れて、ビューモデルに直接アクセスする可能性はありますか?
追加情報#1:Example Project: 私は私がここでやろうとしています何の(簡単な)例をアップロードしています。私は私のMainViewViewModelから(UserControl1のViewModelのバインディングプロパティを介して)UserControl1のラベルの値を変更したいと思います。
データバインディングを使用 –
これは、私のUserControlが、基本的に私のViewModelが行うべきINotifyPropertyChangedを実装する必要があることを意味します。 –