依存関係プロパティの使用に問題があります。コンストラクターでオブジェクトを初期化するために DP の値を使用したいと思います。
問題は、Month が常に 0 (構築時間中) であるため、ExpenseDetailPageDataModel の初期化が正しく行われないことです。コンストラクターが作業を終了した直後に、変数 Month の値が正しい値 (この場合は 11) に変わります。
FinanceItemViewControl はカスタム ユーザー コントロールです。
<common:FinanceItemViewControl Grid.Column="2" Month="11"/>
以下のコードに示すように、Month は依存関係プロパティです。
public sealed partial class FinanceItemViewControl : UserControl
{
...
public static readonly DependencyProperty MonthProperty = DependencyProperty.Register
(
"Month",
typeof(int),
typeof(FinanceItemViewControl),
new PropertyMetadata(
0, new PropertyChangedCallback(MonthProperty_Changed))
);
public int Month
{
get { return (int)GetValue(MonthProperty); }
set { SetValue(MonthProperty, value); }
}
#endregion
private static void MonthProperty_Changed(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
//TODO: trigger data reload
}
public FinanceItemViewControl()
{
this.InitializeComponent();
...
Debug.WriteLine("Constructor: " + Month);
detailPageDataModel = new ExpenseDetailPageDataModel(Month);
...
}