Разрешить только режим привязки OneWayToSource

я имеюEntitiesUserControl ответственный заEntitiesCount свойство зависимости:

public static readonly DependencyProperty EntitiesCountProperty = DependencyProperty.Register(
    nameof(EntitiesCount),
    typeof(int),
    typeof(EntitiesUserControl),
    new FrameworkPropertyMetadata(1, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

public int EntitiesCount
{
    get { return (int)this.GetValue(EntitiesCountProperty); }
    set { this.SetValue(EntitiesCountProperty, value); }
}

Другой (первичный) контроль включаетEntitiesUserControl и прочитайте это свойство через связывание:

<controls:EntitiesUserControl EntitiesCount="{Binding CountOfEntities, Mode=OneWayToSource}" />

CountOfEntities Модель свойства в представлении просто сохраняет и обрабатывает изменение значения счетчика:

private int countOfEntities;
public int CountOfEntities
{
    protected get { return this.countOfEntities; }
    set
    {
        this.countOfEntities = value;
        // Custom logic with new value...
    }
}

я нуждаюсьEntitiesCount собственностьюEntitiesUserControl бытьтолько для чтения (первичный контроль не должен изменять его, просто прочитайте), и он работает таким образом только потому, чтоMode=OneWayToSource объявлено явно. Но если объявитьTwoWay режим или не объявить явно режим, тоEntitiesCount может быть переписан извне (по крайней мере, сразу после инициализации привязки, потому что это происходитпосле назначено значение свойства зависимости по умолчанию).

Я не могу использовать «легальное» свойство зависимости только для чтения из-за ограничений привязки (лучше всего описано в этомответ), поэтому мне нужно предотвратить привязки в режиме, отличном отOneWayToSource, Было бы лучше иметь немногоOnlyOneWayToSource флаг какBindsTwoWayByDefault значение вFrameworkPropertyMetadataOptions перечисление ...

Есть предложения как этого добиться?

Ответы на вопрос(1)

Ваш ответ на вопрос