Это не функция привязки данных per se. То же самое относится к любому расширению разметки. Например, котировки/без кавычек не вариациям вы охарактеризовали также можно найти с расширением в StaticResource
разметки, как показано в примере:
<StackPanel>
<StackPanel.Resources>
<SolidColorBrush x:Key="b" Color="Red" />
</StackPanel.Resources>
<TextBlock
Foreground="{StaticResource b}"
Text="Foo"/>
<TextBlock
Text="Foo">
<TextBlock.Foreground>
<StaticResource ResourceKey="b" />
</TextBlock.Foreground>
</TextBlock>
</StackPanel>
Она сводится к следующему: если вы используете элемент XML для создания экземпляра разметки (например, Binding
или StaticResource
), и если вы установите свойства как атрибуты, для синтаксических правил XML потребуются кавычки. Это вне контроля XAML. Синтаксис XML требует кавычек вокруг всех значений атрибутов.
Но если вы используете расширение синтаксиса разметки (т. Е. {...}), кавычки являются необязательными для свойств, которые вы устанавливаете внутри этих фигурных скобок. Это связано с тем, что синтаксис расширения разметки не является особенностью XML. Это особенность XAML, и поэтому Microsoft контролирует синтаксис. Одна из целей расширений разметки заключается в уменьшении многословности, и, поскольку Microsoft могла делать необязательные кавычки, они сделали это. (Фактически, требование котировок было бы грязным, потому что тогда вы, как правило, сталкиваетесь с проблемами, возникающими при выделении разметки, - когда расширение разметки является значением атрибута, оно уже заключено в кавычки, поэтому требование вложенных котировок может стать беспорядочным.)
Там в третий синтаксис, кстати:
<myObject.myProperty>
<Binding>
<Binding.Path>myData</Binding.Path>
</Binding>
<myObject.myProperty/>
Binding
это просто объект, как и все остальное в XAML, так что вы можете установить его свойства, используя либо атрибуты или элементы собственности. Установив Path
как элемент свойства, я получаю его значение как содержимое этого элемента свойства. Синтаксические правила XML не требуют кавычек вокруг содержимого элемента, поэтому я снова опускаю кавычки.
Итак, все это действительно сводится к правилам XML, где данные нуждаются в котировках. Он не имеет большого отношения к XAML и совсем не привязан к привязке данных.
Краткий ответ и очень понятный. Большое спасибо! – user1886323
Спасибо, рад, что вам понравилось. Любой шанс вы могли бы отметить это как ответ? –