Tamam ... Bir çocuk ItemsControl veri şablonunun içinden bir ebeveyne itemscontrol özelliklerini bağlamak gerekiyor:WPF çocuk ItemsControl veri şablonunun içinden ana ItemsControl bağlanma
<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>
şu tiptedir en o MyParentCollection (dış toplama) varsayalım:
public class MyObject
{
public String Value { get; set; }
public List<MyChildObject> MySubCollection { get; set;
}
Ve yukarıdaki sınıf şu tiptedir gelen en o MyChildObject varsayalım:
public class MyChildObject
{
public String Name { get; set; }
}
İç veri şablonunun içinden MyParentCollection.Value öğesine nasıl bağlanabilirim? Her iki seviyenin de aynı türleri kullandıkları için FindAncestor türünü kullanamıyorum. Belki dış koleksiyona bir isim koyabilirim ve iç bağlamada bir ElementName etiketi kullanabilirim, ama yine de mülkiyeti çözemedim.
Herhangi bir düşünce? Ben ItemsControl
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=MySubCollection}" Tag="{Binding .}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Tag.Value, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
onun test edilmedi çalışmak ancak doğru yönde bir ipucu verebilir ...
FindAncestor modunu kullanamaz ve hem Type hem de Ancestor düzeyini belirtebilir misiniz? –
hmmm, atası seviyesini bile düşünmedim ... Şu an bakacağım –
Bunu işe yaramayacak gibi görünüyorum, ah evet –