У меня есть следующий код XAML:Привязка к ItemsPresenter собственности
<ItemsControl ItemsSource="{Binding...}" >
<ItemsControl.Template>
<ControlTemplate>
<ItemsPresenter x:Name="testGrid"/>
</ControlTemplate>
</ItemsControl.Template>
<!--Use the ItemsPanel property to specify a custom UniformGrid that
holds the laid out items.-->
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<tools:UniformGridRtL Columns="8" x:Name="testGrid2" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<!--Use the ItemTemplate to set a DataTemplate to define
the visualization of the data objects. This DataTemplate
specifies that each data object appears RegisterBit appears
as a CheckBox bound to RegisterBit properties. It also defines
a custom template for the checkbox.-->
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox... />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Label>
<Binding ElementName="testGrid2" Path="property_of_UniformGridRtL"/>
</Label>
В принципе, у меня есть пользовательские панели (UniformGridRtL) установить в качестве ItemsPanelTemplate, который будет шаблон по ItemsPresenter в ItemsControl. UniformGridRtL имеет свойство, с которым я хотел бы привязываться, но ElementName, похоже, не работает в привязке меток. Как связать свойство сгенерированного объекта ItemsControl?
Спасибо за обход ... Это действительно работает, если цель привязки также не является элементом-шаблоном. Что произойдет, если я хочу привязываться к элементу sibling в том же элементе ItemsControl ControlTemplate? – Mart
Если у вас есть исходный элемент для родного брата, вместо использования использования отправителя (namedItemsControl) .Template.FindName(), как описано здесь: http://stackoverflow.com/questions/820201/how-to-access-a-wpf- control-found-in-a-controltemplate –
Извините, мой комментарий отключен - если шаблон настроен, вы можете использовать ту же стратегию с Template.FindName(), что и код просто становится немного грязнее. Обязательно по-прежнему используйте какое-либо событие Loaded, хотя или у вас еще не будет визуального дерева, а FindName вернет значение null. –