gpt4 book ai didi

c# - WPF 从子 ItemsControl 数据模板内部绑定(bind)到父 ItemsControl

转载 作者:可可西里 更新时间:2023-11-01 08:40:42 39 4
gpt4 key购买 nike

我需要能够从子 ItemsControll 数据模板内部绑定(bind)到父 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; }
}

如何从内部数据模板内部绑定(bind)到 MyParentCollection.Value?我不能真正按类型使用 FindAncestor,因为它们所有级别都使用相同的类型。我想也许我可以在外部集合上放置一个名称并在内部绑定(bind)中使用 ElementName 标记,但仍然无法解析该属性。

有什么想法吗?

最佳答案

将父项保存在子项控件的标签中是可行的

    <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>

它没有经过测试,但会为您提供正确方向的提示 :)

关于c# - WPF 从子 ItemsControl 数据模板内部绑定(bind)到父 ItemsControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17186985/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com