} // end constructor private void Page_Loaded(object sender, RoutedEventArgs e) { if (this.Product == null) { this.Product = new Data.ViewModels.ViewProduct(); } // end if this.DataContext = this.Product; bool IsEdit = this.Product == null ? false : this.Product.Id > 0; this.TitleEditProductItem.Visibility = IsEdit ? Visibility.Visible : Visibility.Collapsed; this.TitleNewProductItem.Visibility = !IsEdit ? Visibility.Visible : Visibility.Collapsed; } // end sub
} // end constructor private void Page_Loaded(object sender, RoutedEventArgs e) { if (this.Product == null) { this.Product = new Data.ViewModels.ViewProduct(); // .net 4.5 では自動で行われるエラー発生時のイベント処理を、自分で実装します。また、最初のエラー検証を発動するため、Initializeメソッドを実行してプロパティの割り当てとエラーイベントの発生を起こします。 this.Product.ErrorsChanged += new EventHandler <Data.ViewModels.DataErrorsChangedEventArgs>(Product_ErrorsChanged); this.Product.Initialize(); } // end if this.DataContext = this.Product; bool IsEdit = this.Product == null ? false : this.Product.Id > 0; this.TitleEditProductItem.Visibility = IsEdit ? Visibility.Visible : Visibility.Collapsed; this.TitleNewProductItem.Visibility = !IsEdit ? Visibility.Visible : Visibility.Collapsed; } // end sub
/// <summary> /// View Model(VM) Product のプロパティの値を、Model(M) Product のプロパティにコピーします。 /// </summary> /// <param name="me">Model(M) Product のインスタンスを指定します。</param> /// <param name="from">View Model(VM) Product のインスタンスを指定します。</param> public static void SetProperties(this Product me, MvvmSample.Data.ViewModels.ViewProduct from) { MvvmSample.Data.ViewModels.ViewProduct.SetProperties(from, me); } // end sub