0

各タブ内に異なるユーザー コントロールを持つタブ コントロールを持つビュー ウィンドウがあります。ウィンドウには独自のビュー モデルがあり、各ユーザー コントロールも同様です。子ユーザー コントロール ビュー モデルからメイン ウィンドウ ビュー モデルのプロパティを更新するにはどうすればよいでしょうか。

4

2 に答える 2

0

こんにちは、親 ViewModel から子ビュー モデルをインスタンス化する場合は、子ビュー モデルからイベントを発生させ、親 ViewModel でそのイベントをリッスンし、親 ViewModel の目的のプロパティを更新することで実行できます。ただし、ViewModel を View、つまり userControl からインスタンス化する場合は、UserControl で DependencyProperty を作成し、それを Parent View Model と Child ViewModel Property にバインドする必要がありますが、xaml で 1 つのプロパティのみをターゲット プロパティにバインドできるという問題が 1 つあります。 DependencyProperty の ValueChanged から子 ViewModel プロパティを更新する必要があります。これがあなたにアイデアを与えることを願っています。

于 2013-02-13T16:28:22.333 に答える
0

私のAddUserUserControl 子:

public event EventHandler<RoutedEventArgs> SaveUser;

// Wherever I want that event to be launched I write this:
private void buttonSaveUser_Click(object sender, RoutedEventArgs e)
{
    EventHandler<RoutedEventArgs> handler = SaveUser;
    handler(this, userEventArgs);
}

で、子MainWindow.xamlを作成したら、イベントに登録します。UserControl

addUser = new F7AddUser();
addUser.SaveUser += AddUser;

そして、新しいAddUserメソッドを作成します (これは にある必要がありますMainWindow.xaml)。これは からのものeventであるため、引数はそれを起動したイベントと同じでなければならないことに注意してください。

private void AddUser(object o, RoutedEventArgs e)
{
    // Stuff here
}
于 2013-02-13T18:14:35.840 に答える