web-dev-qa-db-ja.com

カスタム依存関係プロパティのデフォルトのバインディングモードと更新トリガーを指定する方法はありますか?

デフォルトとして、依存関係プロパティの1つにバインドすると、バインディングモードが双方向になり、更新トリガーがプロパティが変更されるようにします。これを行う方法はありますか?

これが私の依存関係プロパティの例です:

public static readonly DependencyProperty BindableSelectionLengthProperty =
        DependencyProperty.Register(
        "BindableSelectionLength",
        typeof(int),
        typeof(ModdedTextBox),
        new PropertyMetadata(OnBindableSelectionLengthChanged));
61
Justin

プロパティを登録するときに、メタデータを次のように初期化します。

new FrameworkPropertyMetadata
{
    BindsTwoWayByDefault = true,
    DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
}
94
Diego Mijelshon

依存関係プロパティ宣言では、次のようになります。

public static readonly DependencyProperty IsExpandedProperty = 
        DependencyProperty.Register("IsExpanded", typeof(bool), typeof(Dock), 
        new FrameworkPropertyMetadata(true,
            FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
            OnIsExpandedChanged));

public bool IsExpanded
{
    get { return (bool)GetValue(IsExpandedProperty); }
    set { SetValue(IsExpandedProperty, value); }
}
17
Paul Matovich