In. NET 4.0, Run.Text можно привязать. Поэтому я попытался привязать его:
Но когда я запустил, я получил ошибку: «Привязка TwoWay или OneWayToSource не может работать со свойством только для чтения» DisplayText 'типа' SomeNamespace.SomeClass '. "
Мое свойство DisplayText действительно было доступно только для чтения, но также и Run - Run входит в TextBlocks, которые вы не можете редактировать. Так зачем мне это Ошибка? Я копался в PresentationFramework с помощью dotPeek и, конечно же:
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof (string), typeof (Run),
(PropertyMetadata) new FrameworkPropertyMetadata((object) string.Empty,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
new PropertyChangedCallback(Run.OnTextPropertyChanged),
new CoerceValueCallback(Run.CoerceText)));
Четвертая строка, обычная как день, указывает, что Run.Text должен по умолчанию связываться двусторонним, что не имеет смысла и похоже на вопиющая ошибка дизайна.
Конечно, это достаточно легко обойти:
Но почему мне нужно иметь , чтобы обойти это? Почему Run по умолчанию выполняет двустороннюю привязку?