1using System.Windows;2using System.Windows.Data;3using System.Windows.Controls;4using System;5using Reactive.Bindings.Interactivity;67namespace Project1.Views
8{9 public partial class UserControl1 : UserControl
10{11 public UserControl1()12{13InitializeComponent();14}1516 private voidNameText_TextChanged(object sender, RoutedEventArgs e)17{18 InputedMyCode = CodeText.Text;19 DbMyName = NameText.Text;20}2122// string型のInputedMyCodeとDbMyNameのDependencyPropertyを実装23 public static readonly DependencyProperty InputedMyCodeProperty =24 DependencyProperty.Register(nameof(InputedMyCode),25typeof(string),typeof(UserControl1), new PropertyMetadata(""));26 public string InputedMyCode
27{28 get =>(string)GetValue(InputedMyCodeProperty);29 set =>SetValue(InputedMyCodeProperty, value);30}31 public static readonly DependencyProperty DbMyNameProperty =32 DependencyProperty.Register(nameof(DbMyName),33typeof(string),typeof(UserControl1), new PropertyMetadata(""));34 public string DbMyName
35{36 get =>(string)GetValue(DbMyNameProperty);37 set =>SetValue(DbMyNameProperty, value);38}39}40}
> RelativeSourceを使って、子の依存関係プロパティを親のVMにバインドできました。ありがとうございます。
やりたいことができたのであれば特に言うこともないんですが、聞かれてしまったので私の考えを書きます(が、おそらく賛同いただけないんでしょう)
> ただ、なぜ「そんなのイヤすぎますよね?」となるのでしょうか(xamlでの記述が長くなるから?)。
独立性が高いからUserControlに切り出してるんですよね?(もしかしてこの前提すら違う??)
であれば子が親を気にする時点で間違っていると思うのですが(相互に依存が発生してしまう)
親にベタ書きしていたがごちゃついてきたので、一部をUserControlにするというのはよくあると思います。
ただAutoWire=trueでDependencyPropertyまで作ってあれこれするんじゃ元より余計ごちゃついていませんか?
すっきり書けないということは、ViewかVMの切り出し範囲を間違っているんだと思います。
FullAppテンプレートは見ていただけました?
[Prism.Templates/Wpf/FullApp at master · PrismLibrary/Prism.Templates](https://github.com/PrismLibrary/Prism.Templates/tree/master/Wpf/FullApp
これなんかは確かにきれいに分かれていて(分かれすぎなぐらいですが^^;、なるほどなーと思う反面「で?」となってしまうのもあります(テンプレートなのでこれで正しいんですが^^;
公式サンプルで、もうちょっと具体的な例が総集編的にでもあればいいんですが。。。
[PrismLibrary/Prism-Samples-Wpf: Samples that demonstrate how to use various Prism features with WPF](https://github.com/PrismLibrary/Prism-Samples-Wpf