WPFでコントロールを自作する場合、メニューから[ユーザーコントロールの追加]を実行する事で、UserControlクラスを継承した新たなコントロールを作成出来る。
作成したコントロールはXAMLから配置する事が出来るが、自作コントロールのプロパティへ値をバインドさせたい場合、依存関係プロパティという仕組みを使う必要がある。
DependencyPropertyを作成
DependencyProperty.Registerメソッドを使ってプロパティを作成する。
プロパティ名、プロパティの型、プロパティを所有するクラスの型に加えて、PropertyMetadataから初期値やプロパティ変更時のコールバックメソッドを指定できる。
public static readonly DependencyProperty SelectedColorProperty = DependencyProperty.Register( "SelectedColor", // プロパティ名を指定 typeof(Color), // プロパティの型を指定 typeof(ColorPicker), // プロパティを所有する型を指定 new PropertyMetadata(Colors.White, (d, e) => {(d as ColorPicker).OnColorPropertyChanged(e); }));
通常のプロパティも作成
依存関係プロパティをラップするような感じ。
public Color SelectedColor { get { return (Color)GetValue(SelectedColorProperty); } set { SetValue(SelectedColorProperty, value); } }
コメントをお書きください