Хорошо, поэтому у меня есть фанки здесь... Мне нужно иметь возможность привязываться к родительским свойствам ItemsControl изнутри дочернего шаблона данных ItemsControl:
<ItemsControl ItemsSource="{Binding Path=MyParentCollection, UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=MySubCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=MyParentCollection.Value, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Предположим, что MyParentCollection (внешняя коллекция) имеет следующий тип:
public class MyObject
{
public String Value { get; set; }
public List<MyChildObject> MySubCollection { get; set;
}
И пусть предположим, что MyChildObject из указанного класса имеет следующий тип:
public class MyChildObject
{
public String Name { get; set; }
}
Как я могу привязать к MyParentCollection.Value из внутреннего шаблона данных? Я не могу использовать тип FindAncestor по типу, потому что оба уровня используют одинаковые типы. Я подумал, что, возможно, я могу поместить имя в внешнюю коллекцию и использовать тег ElementName во внутренней привязке, но это все еще не может решить свойство.
Любые мысли? Я застрял на этом...