В каком сценарии нам нужно использовать свойство зависимости в WPF? - PullRequest
2 голосов
/ 29 декабря 2010

мы можем получить привязку просто с помощью свойства CLR. Почему нам нужно использовать DP?

Ответы [ 3 ]

1 голос
/ 29 декабря 2010

Когда вам нужно DP с CLRP с?

  • Когда вам нужно binding
  • , когда вам нужно property value change callback (реализация по умолчанию)
  • Когда вам нужно property value validation
  • Когда вам нужно animation
  • Когда вам нужно property value inheritance
  • Когда вам нужно attach a property value к другому элементу(Прилагаемое свойство, но все же)
  • Когда вам нужно styling

Некоторые из них могут быть реализованы в CLR свойствах.Но с DP s, его кусок пирога.

0 голосов
/ 29 декабря 2010

Обычно они объявляются в UserControl s и производных элементах управления.

Вы можете связать с свойством CLR, но не можете связать с aСобственность CLR;вам понадобится свойство зависимости для выполнения любой привязки.

Редактировать (в ответ на комментарий)

Допустим, вам нужен TextBox, но вы хотите настроить его так, чтобы он имел другое поведение в "EditMode "и" ReadMode ".Вам нужно будет либо создать производный класс, либо UserControl;в любом случае вы добавите DependencyPropery.

public class TextBoxWithModes : TextBox
{
    public bool EditMode
    {
        get { return (bool) GetValue(EditModeProperty); }
        set { SetValue(EditModeProperty, value); }
    }

    public static readonly DependencyProperty EditModeProperty = DependencyProperty.Register(
        "EditMode", typeof (bool), typeof (TextBoxWithModes));
}

Имея это, вы можете объявить его в XAML:

<Namespace:TextBoxWithModes Text="enter text here"
    Width="200"
    HorizontalAlignment="Center"
    EditMode="{Binding IsChecked, ElementName=editModeCheckBox}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...