Re[8]: ElementName и Source, RelativeSource не эквивалентны
От: igor-booch Россия  
Дата: 29.12.15 13:48
Оценка:
Наш код отличается тем, что Вы указываете источник биндинга для лэйбла в шаблоне, через Source, а не через ElementName, как я:


 <DataTemplate x:Key="dt">
      <Label Content="{Binding Data.Name1, Source={StaticResource vm}}" />
 </DataTemplate>



Поменял свой код, указываю источник биндинга через RelativeSource (у меня ViewModel не используется, у Вас используется):
      <DataTemplate x:Key="template"> 
          <Label Content="{Binding Item.Name1, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
      </DataTemplate>


Тоже работает.

Теперь вопрос:
Почему для кнопки безразлично как указывается источник биндинга внутри шаблона, через ElementName, Source или RelativeSource
а для UserControl'а работает только Source и RelativeSource?
Я думал, что все три способа задания источника биндинга эквивалентны. Это баг WPF либо есть разумное объяснение (чем принципиально отличается кнопка от моего контрола в этом отношении)?
http://rsdn.ru/Info/rules.xml
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.